我正在尝试将 opentelemetry 添加到我的 .net core 5.0 工作服务项目之一,一切正常,但跟踪未开始发送到 Jaeger UI,我还注意到 ActivitySource.StartActivity 返回 null,我在 google 上搜索,看起来像我可能缺少 ActivirtListner 但不确定如何添加到我的工作服务中,
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
services.AddOpenTelemetryTracing(builder =>
{
//IConfiguration config = sp.GetRequiredService<IConfiguration>();
builder
//.SetSampler(new AlwaysOnSampler())
.AddHttpClientInstrumentation()
//.AddSqlClientInstrumentation()
//.AddNServiceBusInstrumentation()
//.AddRabbitMqInstrumentation()
.AddSource(nameof(Worker))
.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService("WorkerServiceForTelemetry"))
.AddConsoleExporter()
.AddAspNetCoreInstrumentation()
//.AddOtlpExporter(options => options.Endpoint = new Uri("http://localhost:4317"))
.AddJaegerExporter(opts =>
{
opts.AgentHost = "Jaeger";
opts.AgentPort = 6831;
opts.ExportProcessorType = ExportProcessorType.Simple;
});
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的worker.cs 文件
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using …Run Code Online (Sandbox Code Playgroud)