/// <summary> /// 启用zipkin中间件 /// </summary> /// <param name="app"></param> /// <param name="servierName">收集日志(服务名称)</param> /// <param name="zipkinUri">Zpikin 地址</param> /// <param name="loggerName">日志名称</param> /// <returns></returns> public static IApplicationBuilder UserZipKin(this IApplicationBuilder app, ILoggerFactory loggerFactory, string servierName, string zipkinUri, string loggerName, float logpercent = 1) { var applicationLife = app.ApplicationServices.GetService <IApplicationLifetime>(); if (applicationLife == null) { throw new ArgumentNullException(nameof(applicationLife)); } if (string.IsNullOrWhiteSpace(servierName)) { throw new ArgumentNullException(nameof(servierName)); } if (string.IsNullOrWhiteSpace(zipkinUri)) { throw new ArgumentNullException(nameof(zipkinUri)); } if (string.IsNullOrWhiteSpace(loggerName)) { throw new ArgumentNullException(nameof(loggerName)); } //服务启动时候注入zipkin applicationLife.ApplicationStarted.Register(() => { //收集日志比例 TraceManager.SamplingRate = logpercent; var logger = new TracingLogger(loggerFactory, loggerName); //配置zipkin 服务器地址 var httpSender = new HttpZipkinSender(zipkinUri, "application/json"); //追踪器 var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); //控制台追踪器 var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); TraceManager.RegisterTracer(tracer); TraceManager.RegisterTracer(consoleTracer); TraceManager.Start(logger); }); applicationLife.ApplicationStopped.Register(() => { TraceManager.Stop(); }); app.UseTracing(servierName); return(app); }
/// <summary> /// 请求跟踪 /// </summary> /// <param name="application"></param> /// <param name="loggerFactory"></param> /// <param name="applicationLifetime"></param> public void RegisterZipkinTrace(IApplicationBuilder application, ILoggerFactory loggerFactory, IHostApplicationLifetime applicationLifetime) { applicationLifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; //记录数据粒度 全部记录 var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://10.211.55.5:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); //序列化 统计 var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); TraceManager.RegisterTracer(tracer); TraceManager.RegisterTracer(consoleTracer); TraceManager.Start(logger); }); applicationLifetime.ApplicationStopped.Register(() => { application.UseTracing("user_api"); }); }
private void RegisterZipkinTrace(IApplicationBuilder app, ILoggerFactory loggerFactory, IApplicationLifetime lifetime) { lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://47.100.193.29:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); TraceManager.RegisterTracer(consoleTracer); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing("User.Api"); }
/// <summary> /// 注册Zipkin /// </summary> /// <param name="app"></param> /// <param name="loggerFactory"></param> /// <param name="applicationLifetime"></param> private void RegisterZipkinService(IApplicationBuilder app, ILoggerFactory loggerFactory, IApplicationLifetime applicationLifetime) { applicationLifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; //记录数据密度,1.0代表全部记录 var logger = new TracingLogger(loggerFactory, "zipkin4net"); //内存数据 var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); //注册zipkin var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); //控制台输出 TraceManager.RegisterTracer(tracer); //注册 TraceManager.RegisterTracer(consoleTracer); //控制台输入日志 TraceManager.Start(logger); //放到内存中的数据 }); applicationLifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing("identityapi");//这边的名字可自定义 }
private void RegisterZipkinTrace(IApplicationBuilder app, ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.IApplicationLifetime lifetime) { lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://192.168.2.2:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); TraceManager.RegisterTracer(consoleTracer); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing("Project.API"); }
/// <summary> /// UseZipkin /// </summary> /// <param name="app"></param> /// <param name="env"></param> /// <param name="loggerFactory"></param> /// <param name="lifetime"></param> public static void UseZipkin(this IApplicationBuilder app, IHostEnvironment env, ILoggerFactory loggerFactory, IHostApplicationLifetime lifetime) { lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; //记录数据密度,1.0代表全部记录 var logger = new TracingLogger(loggerFactory, "zipkin4net"); //内存数据 var httpSender = new HttpZipkinSender("http://127.0.0.1:9411", "application/json"); //zipkin服务器的地址及端口 var trace = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); //注册zipkin var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); //控制台输出 TraceManager.RegisterTracer(trace); //注册 TraceManager.RegisterTracer(consoleTracer); //控制台输出日志 TraceManager.Start(logger); //放到内存中的数据 }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(env.ApplicationName);//此处名字可自定义,一般为服务的名字 }
/// <summary> /// 注册zipkinTrace /// </summary> /// <param name="app"></param> /// <param name="loggerFactory"></param> /// <param name="lifetime"></param> public void RegisterZipkinTrace(IApplicationBuilder app, ILoggerFactory loggerFactory, IApplicationLifetime lifetime) { lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f;//记录数据密度,1.0代表全部记录 var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://192.168.161.138:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); TraceManager.RegisterTracer(tracer); TraceManager.RegisterTracer(consoleTracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing("demo2");//这边的名字可自定义 }
public static IApplicationBuilder UseZipkin(this IApplicationBuilder app, IHostApplicationLifetime lifetime, ILoggerFactory loggerFactory, string serviceName, string zipkinUrl) { System.Diagnostics.DiagnosticListener.AllListeners.Subscribe(app.ApplicationServices.GetService <TraceObserver>()); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f;//记录数据密度,1.0代表全部记录 var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(zipkinUrl, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); var consoleTracer = new zipkin4net.Tracers.ConsoleTracer(); TraceManager.RegisterTracer(tracer); TraceManager.RegisterTracer(consoleTracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(serviceName);//这边的名字可自定义 return(app); }