public static TracerProvider EnableTracing(Jaeger config) { TracerProvider tracing = null; if (config.Enabled) { tracing = Sdk.CreateTracerProviderBuilder() .SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(Statics.TracingService)) .AddHttpClientInstrumentation(config => { config.RecordException = true; config.Enrich = (activity, name, rawEventObject) => { activity.SetTag("SpanId", activity.SpanId); activity.SetTag("TraceId", activity.TraceId); }; }) .AddSource(Statics.TracingService) .AddJaegerExporter(o => { o.AgentHost = config.AgentHost; o.AgentPort = config.AgentPort.GetValueOrDefault(); }) .Build(); Log.Information("Tracing started and exporting to: http://{@Host}:{@Port}", config.AgentHost, config.AgentPort); } return(tracing); }
public static void EnableTracing(IServiceCollection services, Jaeger config) { if (config.Enabled) { services.AddOpenTelemetryTracing( (builder) => builder .SetResourceBuilder(ResourceBuilder.CreateDefault() .AddService(Statics.TracingService) .AddAttributes(new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("host.machineName", Environment.MachineName), new KeyValuePair <string, object>("host.os", Environment.OSVersion.VersionString), new KeyValuePair <string, object>("dotnet.version", Environment.Version.ToString()), new KeyValuePair <string, object>("app.version", Constants.AppVersion), }) ) .AddSource(Statics.TracingService) .SetSampler(new AlwaysOnSampler()) .SetErrorStatusOnException() .AddAspNetCoreInstrumentation(c => { c.RecordException = true; c.Enrich = AspNetCoreEnricher; }) .AddHttpClientInstrumentation(h => { h.RecordException = true; h.Enrich = HttpEnricher; }) .AddJaegerExporter(o => { o.AgentHost = config.AgentHost; o.AgentPort = config.AgentPort.GetValueOrDefault(); }) ); Log.Information("Tracing started and exporting to: http://{@Host}:{@Port}", config.AgentHost, config.AgentPort); } }