You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core项目中OpenTelemetry Trace无法发送至Azure问题排查

问题:OpenTelemetry Trace无法发送至Azure Application Insights

我用OpenTelemetry给ASP.NET Core项目做埋点,要收集日志和Trace,打算把两者都发送到Azure Application Insights存储查询。现在日志和Trace都能在控制台正常捕获显示,但只有日志能传到Application Insights,不管怎么调配置,Trace就是出现在Azure里。我想在Trace表里看到带correlationId的记录,求问原因?

我的OpenTelemetry配置代码如下:

private void ConfigureOpenTelemetry(IServiceCollection services)
{
    var applicationInsightsConnectionString = "valid-connection-string";
    var serviceName = "backend-service-name"
    services.AddOpenTelemetry()
        .ConfigureResource(resource => resource.AddService(serviceName))
        .UseAzureMonitor(options =>
        {
            options.ConnectionString = applicationInsightsConnectionString;
        })
        .WithTracing(builder =>
        {
            builder.AddSource("ActivitySourceName");
            builder.AddAspNetCoreInstrumentation();
            builder.AddConsoleExporter();
            builder.AddAzureMonitorTraceExporter(o => o.ConnectionString = applicationInsightsConnectionString);
        });

    services.AddLogging(logging =>
    {
        logging.AddOpenTelemetry(options =>
        {
            options.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(serviceName));
            options.AddConsoleExporter();
            options.AddAzureMonitorLogExporter(o => o.ConnectionString = applicationInsightsConnectionString);
        });
    });
}

我已经尝试多种OpenTelemetry配置方式,反复核对文档和示例,但问题仍未解决。


排查方向与解决方案

  • 重复配置冲突:你同时使用了UseAzureMonitor()和单独的AddAzureMonitorTraceExporter(),这会导致配置冲突。UseAzureMonitor()已经默认包含Trace、Metrics和Logs的导出器,重复添加会干扰发送逻辑,删掉AddAzureMonitorTraceExporter()这一行即可。
  • ActivitySource名称不匹配:确保业务代码中创建ActivitySource时的名称和AddSource("ActivitySourceName")完全一致,大小写、拼写都不能出错。如果没有手动创建ActivitySource,ASP.NET Core自带的请求Trace会使用Microsoft.AspNetCore作为Source名称,需要将这个名称也加入AddSource。
  • 采样策略过滤:默认采样策略可能过滤了部分Trace,可显式设置100%采样率测试:
    builder.SetSampler(new AlwaysOnSampler());
    
  • 依赖包版本不兼容:检查OpenTelemetry.Extensions.Hosting、Azure.Monitor.OpenTelemetry.Exporter等相关包的版本是否一致,版本不兼容可能导致导出失败。
  • 网络与权限限制:确认连接字符串对应的Azure Application Insights资源有接收Trace的权限,同时排查是否有防火墙、代理拦截了出站请求。

内容的提问来源于stack exchange,提问作者Jasper Keijzer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:52:13