Esempio n. 1
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);
        }
Esempio n. 2
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");
            });
        }
Esempio n. 3
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");
        }
Esempio n. 4
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");//这边的名字可自定义
        }
Esempio n. 5
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");
        }
Esempio n. 6
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);//此处名字可自定义,一般为服务的名字
        }
Esempio n. 7
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");//这边的名字可自定义
        }
Esempio n. 8
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);
        }