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

使用UseAzureMonitor与自定义遥测出现数据重复的配置方法咨询

问题描述

我正尝试通过UseAzureMonitor扩展及自定义Tracing和Metrics将应用集成到Azure Monitor。

单独使用两者时均符合预期,但同时使用时,所有日志、计数器等数据均出现重复。

注释掉UseAzureMonitor会丢失日志和HTTP追踪;注释掉WithTracing和WithMetrics则会丢失所有自定义遥测数据。

请问是否可以同时使用两者?该如何进行配置?

当前配置代码:

builder.Services
.AddOpenTelemetry()
.UseAzureMonitor()
.ConfigureResource(r => r.AddService("XYZ"))
.WithTracing(b => b
    .AddSource("X") 
    .AddAzureMonitorTraceExporter())
.WithMetrics(b => b
    .AddMeter("X") 
    .AddAzureMonitorMetricExporter());
解决方案

可以同时使用,问题出在你重复添加了Azure Monitor导出器,导致遥测数据被发送两次。UseAzureMonitor()已经自动配置了Trace和Metric的Azure Monitor导出器,你又手动通过AddAzureMonitorTraceExporter()和AddAzureMonitorMetricExporter()再次添加,这就是数据重复的根源。

修改后的正确配置:

builder.Services
.AddOpenTelemetry()
.UseAzureMonitor()
.ConfigureResource(r => r.AddService("XYZ"))
.WithTracing(b => b
    .AddSource("X"))
.WithMetrics(b => b
    .AddMeter("X"));

这样配置的效果:

  • UseAzureMonitor()负责日志、HTTP追踪的收集与导出,同时处理默认的Trace/Metric导出配置
  • WithTracing和WithMetrics仅添加你自定义的Source和Meter,无需重复添加导出器,避免数据重复

如果需要对Trace或Metric的导出行为做精细化调整,可通过UseAzureMonitor()的重载参数进行配置,无需重复添加导出器。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:50:59