我正在学习来自OpenTelemetry-dotnet
的这教程,但是我的代码并没有像预期的那样工作。
我的Program.cs
是:
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
const string serviceName = "WebApplication1";
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenTelemetryTracing(tracerProviderBuilder =>
{
tracerProviderBuilder
.AddConsoleExporter()
.AddSource(serviceName)
.SetResourceBuilder(
ResourceBuilder.CreateDefault()
.AddService(serviceName: serviceName, serviceVersion: "1.0.0"));
}).AddSingleton(TracerProvider.Default.GetTracer(serviceName));
var app = builder.Build();
app.MapGet("/test", (Tracer tracer) =>
{
using var span = tracer.StartActiveSpan("test-span");
return "response";
});
app.Run();
当我向/test
发送请求时,它很好地返回"response"
,但是它不会进行任何跟踪。
发布于 2022-06-28 08:02:25
用于ASP.NET核
您必须添加nuget引用
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.0.0-rc9.4" />
并将代码更改为
builder.Services.AddOpenTelemetryTracing(tracerProviderBuilder =>
{
tracerProviderBuilder
.AddConsoleExporter()
.AddSource(serviceName)
.SetResourceBuilder(
ResourceBuilder.CreateDefault()
.AddService(serviceName: serviceName, serviceVersion: "1.0.0"))
.AddAspNetCoreInstrumentation(); // this is required.
}).AddSingleton(TracerProvider.Default.GetTracer(serviceName));
希望能帮上忙。
https://stackoverflow.com/questions/72780061
复制相似问题