Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }