我有以下OpenTelemeter设置:
builder.Services
.AddOpenTelemetry()
.ConfigureResource(ops =>
{
ops.AddService(builder.Environment.ApplicationName).AddTelemetrySdk();
})
.WithTracing(ops =>
{
ops.AddSource("*");
ops.AddAspNetCoreInstrumentation();
ops.AddHttpClientInstrumentation();
ops.AddConsoleExporter();
})
.WithMetrics(ops =>
{
ops.AddMeter("*");
ops.AddConsoleExporter();
});
我可以在控制台中看到踪迹,因此此设置运行良好.
然而,我也想在DataDog中收集这些痕迹.在花了几个小时之后,我没有找到任何方法来让它工作.这是我的DD Tracer设置:
var datadogTracerConfig = TracerSettings.FromDefaultSources();
datadogTracerConfig.Exporter.AgentUri = new UriBuilder(HttpScheme.Http.ToString(), configuration.Host, configuration.TcpPort).Uri;
datadogTracerConfig.Exporter.DogStatsdPort = configuration.UdpPort;
datadogTracerConfig.Environment = environment.EnvironmentName;
datadogTracerConfig.ServiceName = environment.ApplicationName;
datadogTracerConfig.ServiceVersion = version;
Datadog.Trace.Tracer.Configure(datadogTracerConfig);
这种设置也是有效的.我设法把踪迹发送给了DD.然而,我无法将两者结合起来.我try 了以下方法:
var tracer = OpenTracingTracerFactory.WrapTracer(Datadog.Trace.Tracer.Instance);
GlobalTracer.Register(tracer);
但是,这并不奏效.有什么主意吗?