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

FastAPI集成OpenTelemetry到Azure Application Insight遇追踪重复问题求助

解决FastAPI + OpenTelemetry + Azure Application Insights 根追踪重复问题

问题原因

重复的根追踪(如POST /api/ingest/v2/upload http receive)通常由双重追踪注入导致:

  • configure_azure_monitor默认会自动启用FastAPI的HTTP请求追踪
  • Azure WebApp可能通过内置的Application Insights站点扩展/自动检测功能,同时注入了另一层HTTP追踪
  • 或者代码中重复注册了追踪中间件

解决方案

1. 关闭Azure WebApp的自动Application Insights追踪

进入Azure Portal中你的WebApp资源:

  • 导航到「监控」→「Application Insights」
  • 检查是否开启了自动检测或安装了Application Insights站点扩展,如果是,选择关闭(保留手动Otel配置的话)
  • 同时检查应用设置中是否存在APPINSIGHTS_INSTRUMENTATIONKEY或APPLICATIONINSIGHTS_CONNECTION_STRING,确保只有手动配置的连接串存在

2. 调整Otel配置,控制HTTP追踪逻辑

修改你的setup_otel函数,显式禁用configure_azure_monitor的自动HTTP追踪,改为手动初始化FastAPI Instrumentor,避免重复注入:

from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor

def setup_otel(app: FastAPI):
    if settings.APPLICATIONINSIGHTS_CONNECTION_STRING:
        configure_azure_monitor(
            connection_string=settings.APPLICATIONINSIGHTS_CONNECTION_STRING,
            logger_name=settings.LOGGER_NAME,
            disable_http_instrumentation=True  # 禁用自动HTTP追踪
        )
        # 手动初始化FastAPI追踪,确保仅执行一次
        FastAPIInstrumentor.instrument_app(app)

3. 排查重复注册问题

确认代码中没有重复调用setup_otel函数,也没有同时使用其他Application Insights相关的中间件(比如原生azure.monitor.opentelemetry之外的SDK中间件)

4. 验证结果

部署修改后的代码,查看Application Insights的「事务」面板,确认重复的根追踪条目已消失


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:21:08