Example #1
0
        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");
        }
Example #2
0
        // 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);
        }
Example #3
0
        // 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();
            });
        }
Example #4
0
        // 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);
        }
Example #5
0
        // 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();
        }
Example #6
0
        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>());
        }
Example #7
0
        // 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);
            }
        }
Example #8
0
        // 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();
            });
        }
Example #9
0
        // 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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        /// <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);
        }
Example #14
0
        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);
        }
Example #15
0
 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);
 }
Example #16
0
 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();
        }
Example #19
0
        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");
        }
Example #20
0
        /// <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");
            });
        }
Example #21
0
        // 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);
        }
Example #22
0
        /// <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();
            });
        }
Example #23
0
        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");
        }
Example #24
0
        /// <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");//这边的名字可自定义
        }
Example #25
0
        /// <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);//此处名字可自定义,一般为服务的名字
        }
Example #26
0
        /// <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");//这边的名字可自定义
        }
Example #27
0
        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);
        }
Example #28
0
        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);
        }
Example #29
0
        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");
        }
Example #30
0
        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);
        }