Ejemplo n.º 1
0
        public static IMicroServiceSetupBuilder UseAliyunLog(this IMicroServiceSetupBuilder config, IConfigurationSection aliyunLogSection)
        {
            var endpoint        = aliyunLogSection.GetValue <string>("EndPoint");
            var accessKeyId     = aliyunLogSection.GetValue <string>("AccessKeyId");
            var accessKeySecret = aliyunLogSection.GetValue <string>("AccessKeySecret");

            config.AddNLogRule(new EntityFrameworkTarget(endpoint, accessKeyId, accessKeySecret), "Microsoft.EntityFrameworkCore.*", true);
            config.AddNLogRule(new DefaultTarget(endpoint, accessKeyId, accessKeySecret), "AliyunLogger");

            config.Server.UseInterceptor(new GrpcMethodCallLogInterceptor(config.Server.ApplicationServices));
            return(config);
        }
Ejemplo n.º 2
0
        public static IMicroServiceSetupBuilder UseAppMetrics(this IMicroServiceSetupBuilder config)
        {
            var metrics = config.Server.ApplicationServices.GetService <IMetricsRoot>();

            config.Server.UseInterceptor(new GrpcMetricsServerInterceptor(config.Server.ApplicationServices));

            new AppMetricsTaskScheduler(TimeSpan.FromSeconds(3),
                                        async() =>
            {
                await Task.WhenAll(metrics.ReportRunner.RunAllAsync());
            }).Start();
            return(config);
        }
        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);
        }