public ZipkinMiddleware( OwinMiddleware next, string serviceName, ITraceExtractor traceExtractor) : base(next) { this.serviceName = serviceName; this.traceExtractor = traceExtractor; }
public OtTracer(string serviceName, IScopeManager scopeManager, ITraceInjector traceInjector, ITraceExtractor traceExtractor) { ServiceName = serviceName ?? throw new ArgumentNullException(nameof(serviceName)); ScopeManager = scopeManager ?? throw new ArgumentNullException(nameof(scopeManager)); _traceInjector = traceInjector ?? throw new ArgumentNullException(nameof(traceInjector)); _traceExtractor = traceExtractor ?? throw new ArgumentNullException(nameof(traceExtractor)); }
public void Setup() { logger = Substitute.For <ILogger>(); tracer = new InMemoryTracer(); traceExtractor = Substitute.For <ITraceExtractor>(); TraceManager.SamplingRate = 1.0f; TraceManager.RegisterTracer(tracer); TraceManager.Start(logger); }
internal static Action <IAppBuilder> DefaultStartup(string serviceName, ITraceExtractor traceExtractor) { return (app => { app.UseZipkinTracer(serviceName, traceExtractor); app.Run(async context => { context.Response.ContentType = "text/plain"; await context.Response.WriteAsync(DateTime.Now.ToString()); }); }); }
/// <summary> /// 通过跟踪配置初始化一个跟踪 /// </summary> /// <param name="option"></param> public TraceProvider(TraceOptions option) { //创建默认log器 var log = new LogFactory(); var logger = new TraceLogger(new Log <TraceLogger>(log)); //创建发送实例 var sender = new HttpZipkinSender(option.Endpoint, "application/json"); logger.LogInformation($"{nameof(option.Endpoint)}:{option.Endpoint}"); TraceManager.SamplingRate = option.SamplingRate; logger.LogInformation($"{nameof(option.SamplingRate)}:{option.SamplingRate}"); //创建跟踪 var tracer = new ZipkinTracer(new RateLimiterZipkinSender(sender, option.MaxRequest, option.Duration), new JSONSpanSerializer()); //注册跟踪 TraceManager.RegisterTracer(tracer); //开始 TraceManager.Start(logger); _extractor = new ZipkinHttpTraceExtractor(); }
public static IAppBuilder UseZipkinTracer(this IAppBuilder appBuilder, string serviceName, ITraceExtractor traceExtractor) => appBuilder.Use <ZipkinMiddleware>(serviceName, traceExtractor);