public void RegisterZipkinService(IApplicationBuilder app, ILoggerFactory loggerFactory, IApplicationLifetime lifetime) { lifetime.ApplicationStarted.Register(() => { //记录数据密度,1.0代表全部记录 TraceManager.SamplingRate = 1.0f; //数据保存到内存 var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); var consoleTracer = new ConsoleTracer(); TraceManager.RegisterTracer(tracer); TraceManager.RegisterTracer(consoleTracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => { TraceManager.Stop(); }); app.UseTracing("contact_api"); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { var config = ConfigureSettings.AppSettingConfig; var applicationName = config["applicationName"]; //if (env.IsDevelopment()) //{ // app.UseDeveloperExceptionPage(); //} //else //{ // app.UseExceptionHandler("/Home/Error"); // app.UseHsts(); //} var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(ConfigEx.zipkinAddr, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); //监控名称。 app.UseTracing(applicationName); Run(app, config); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, IConfiguration Configuration) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } var applicationName = Configuration.GetValue <string>("applicationName"); var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(applicationName); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { var config = ConfigureSettings.CreateConfiguration(); var applicationName = config["applicationName"]; loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "Criteo.Profiling.Tracing"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(applicationName); Run(app, config); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } var lifetime = app.ApplicationServices.GetService <IApplicationLifetime> (); IStatistics statistics = new Statistics(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(Configuration.GetConnectionString("Zipkin"), "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), statistics); TraceManager.Trace128Bits = true; TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing("report"); app.UseMvc(); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); var lifetime = app.ApplicationServices.GetService <Microsoft.Extensions.Hosting.IHostApplicationLifetime>(); IStatistics statistics = new Statistics(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(Configuration.GetSection("OpenTelemetry:Zipkin:HttpZipkinSender").Get <string>(), "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), statistics); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(Configuration.GetSection("OpenTelemetry:Zipkin:ServiceName").Get <string>()); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(); var appName = this.Configuration["applicationName"]; var zipkinUrl = this.Configuration["zipkinUrl"]; if (!string.IsNullOrWhiteSpace(zipkinUrl)) { var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register( () => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(appName); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { var applicationName = "car-loan"; if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } var zipkinEndpoint = Environment.GetEnvironmentVariable("PROXY_ENDPOINT") + ":9411"; var lifetime = app.ApplicationServices.GetService <Microsoft.AspNetCore.Hosting.IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(zipkinEndpoint, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(applicationName); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { var config = ConfigureSettings.CreateConfiguration(); loggerFactory.AddConsole(); app.UseCors("CorsPolicy"); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } var lifetime = app.ApplicationServices.GetService <IApplicationLifetime> (); IStatistics statistics = new Statistics(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), statistics); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing("userdetailsService"); // Run (app, config); }
private void RegisterZipkinTrace() { TraceManager.SamplingRate = 1.0f; var loggerFactory = GlobalObject.App.ApplicationServices.GetService <ILoggerFactory>(); var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://47.97.126.205:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); var consoleTracer = new ConsoleTracer(); TraceManager.RegisterTracer(tracer); TraceManager.RegisterTracer(consoleTracer); TraceManager.Start(logger); }
public void Start() { var configOfZipkin = _appConfigurationManager.GetConfig <AppConfigOfZipkin>(); TraceManager.SamplingRate = 1.0f; _loggerFactory.AddConsole(); var logger = new TracingLogger(_loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(configOfZipkin.Address, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }
private void StartZipkinTracer() { var zipkinCollector = Configuration.GetValue <string>("Zipkin:Collector"); var logger = new TracingLogger(LoggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(zipkinCollector, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); TraceManager.SamplingRate = 1.0f; TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }
/// <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); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { //Configure logs loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); app.UsePathBase(pathBase); } /// set up Zipkin tracing services var applicationName = Configuration["applicationName"]; var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var stats = new Statistics(); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), stats); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(applicationName); #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.UseCors("CorsPolicy"); app.UseMvcWithDefaultRoute(); app.UseSwagger() .UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Catalog.API V1"); }); ConfigureEventBus(app); }
public static void UserZipkinCore(this IApplicationBuilder app, IHostApplicationLifetime applicationLifetime, ILoggerFactory loggerFactory, string zipKinControllerUrl, string serviceName) { applicationLifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(zipKinControllerUrl, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); applicationLifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(serviceName); }
public static void RegisterZipkin(this IApplicationBuilder app, IApplicationLifetime applicationLifetime, ILoggerFactory loggerFactory) { 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 TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); //放到内存中的数据 }); applicationLifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing("UserApi");//记录微服务名称 唯一性 }
public static IMicroServiceSetupBuilder UseZipkinTracer(this IMicroServiceSetupBuilder config, string zipkinCollectorUrl) { var loggerFactory = config.Server.ApplicationServices.GetService <ILoggerFactory>(); TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(zipkinCollectorUrl, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); config.Server.UseInterceptor(new ZipkinTracingServerInterceptor(config.Server.ApplicationServices)); return(config); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddAzureWebAppDiagnostics(); loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) { app.UsePathBase(pathBase); } var applicationName = Configuration["applicationName"]; /// set up Zipkin tracing services var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "eShopOnContainers_" + applicationName); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var stats = new Statistics(); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), stats); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously app.Map("/liveness", lapp => lapp.Run(async ctx => ctx.Response.StatusCode = 200)); #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously app.UseCors("CorsPolicy"); ConfigureAuth(app); app.UseMvcWithDefaultRoute(); app.UseSwagger() .UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Locations.API V1"); c.ConfigureOAuth2("locationsswaggerui", "", "", "Locations Swagger UI"); }); LocationsContextSeed.SeedAsync(app, loggerFactory) .Wait(); }
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> /// 请求跟踪 /// </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"); }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseDiscoveryClient(); //added app.UseHystrixRequestContext(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); //added app.UseHystrixMetricsStream(); var applicationName = "askorder"; loggerFactory.AddConsole(); var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing(applicationName); }
/// <summary> /// 注册Zipkin /// </summary> /// <param name="lifetime"></param> /// <param name="loggerFactory"></param> private void UseZipkin(IApplicationLifetime lifetime, ILoggerFactory loggerFactory) { lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://localhost:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => { TraceManager.Stop(); }); }
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> /// 注册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");//这边的名字可自定义 }
/// <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 UseZipkinTracer(this IApplicationBuilder app, string zipkinUrl, string applicationName) { var loggerFactory = app.ApplicationServices.GetRequiredService <ILoggerFactory>(); var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(zipkinUrl, "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseMiddleware <ZipkinTracingMiddleware>(applicationName); return(app); }
public static IApplicationBuilder UseZipkin(this IApplicationBuilder app, Action <ZipkinConfiguration> configureAction) { if (app == null) { throw new ArgumentNullException(nameof(app)); } var loggerFactory = app.ApplicationServices.GetService(typeof(ILoggerFactory)) as ILoggerFactory; if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); if (lifetime == null) { throw new ArgumentNullException(nameof(lifetime)); } var config = new ZipkinConfiguration(); configureAction(config); lifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = config.SamplingRate; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender(config.Url, config.ContentType); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer()); TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }); lifetime.ApplicationStopped.Register(() => TraceManager.Stop()); app.UseTracing($"{AppDomain.CurrentDomain.FriendlyName}"); return(app); }
private void RegisterZipKinTrace(IApplicationBuilder applicationBuilder, ILoggerFactory loggerFactory, IApplicationLifetime applicationLifetime) { applicationLifetime.ApplicationStarted.Register(() => { TraceManager.SamplingRate = 1.0f; var logger = new TracingLogger(loggerFactory, "zipkin4net"); var httpSender = new HttpZipkinSender("http://192.168.1.110:9411", "application/json"); var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics());//注意github 示例上只提供了第一个参数,会报错 var consoleTracer = new ConsoleTracer(); TraceManager.RegisterTracer(tracer); TraceManager.RegisterTracer(consoleTracer); TraceManager.Start(logger); }); applicationLifetime.ApplicationStopped.Register(() => TraceManager.Stop()); applicationBuilder.UseTracing("user_api"); }
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); }