private static void ConfigureSampler(OpenTelemetryOptions openTelemetryOptions, TracerProviderBuilder configure) { if (openTelemetryOptions.AlwaysOnSampler) { configure.SetSampler(new AlwaysOnSampler()); } }
private static void ConfigureOpenTelemetry(IServiceCollection services, OpenTelemetryOptions openTelemetryOptions) { services.AddOpenTelemetryTracing(configure => { ConfigureSampler(openTelemetryOptions, configure); ConfigureInstrumentation(openTelemetryOptions, configure); ConfigureExporters(openTelemetryOptions, configure); }); }
private static void ConfigureInstrumentation(OpenTelemetryOptions openTelemetryOptions, TracerProviderBuilder configure) { Sdk.SetDefaultTextMapPropagator(GetPropagator(openTelemetryOptions)); configure.AddAspNetCoreInstrumentation(); configure.AddHttpClientInstrumentation(); configure.AddSqlClientInstrumentation(); }
private static void ConfigureExporters(OpenTelemetryOptions openTelemetryOptions, TracerProviderBuilder configure) { if (openTelemetryOptions.Jaeger.Enabled) { configure.SetResourceBuilder(ResourceBuilder.CreateDefault() .AddService(openTelemetryOptions.Jaeger.ServiceName)); configure.AddJaegerExporter(config => { config.AgentHost = openTelemetryOptions.Jaeger.Host; config.AgentPort = openTelemetryOptions.Jaeger.Port; }); } }
private static TextMapPropagator GetPropagator(OpenTelemetryOptions openTelemetryOptions) { var propagators = new List <TextMapPropagator>() { new TraceContextPropagator(), new BaggagePropagator(), }; if (openTelemetryOptions.Istio) { propagators.Add(new B3Propagator()); } return(new CompositeTextMapPropagator(propagators)); }