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); }
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); }