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

Azure App Insights与OpenTelemetry追踪异常:示例显示为依赖而非追踪

解决Azure Monitor OpenTelemetry导出器Span显示为Dependency而非Trace的问题

你遇到的问题是因为OpenTelemetry导出器默认将无父级的独立Span标记为App Insights中的Dependency。要让它显示为Trace(请求类型),需要明确标记该Span为根请求Span,或者通过语义化属性告知导出器其类型。

解决方法

方法1:使用OpenTelemetry语义化Span Kind标记为服务器端请求

在创建Span时指定kind=SpanKind.SERVER,导出器会自动将这类根Span识别为App Insights的请求Trace。

修正后的完整代码:

"""
修改后的示例:将根Span标记为SERVER类型,使其在App Insights中显示为Trace
"""
import os
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.trace import SpanKind  # 新增导入Span类型枚举
from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter

tracer_provider = TracerProvider()
trace.set_tracer_provider(tracer_provider)
tracer = trace.get_tracer(__name__)

exporter = AzureMonitorTraceExporter(
    connection_string=os.environ["APPLICATIONINSIGHTS_CONNECTION_STRING"]
)
span_processor = BatchSpanProcessor(exporter)
trace.get_tracer_provider().add_span_processor(span_processor)

# 关键改动:指定SpanKind.SERVER,标记为根请求Span
with tracer.start_as_current_span("hello", kind=SpanKind.SERVER):
    print("Hello, World!")

tracer_provider.force_flush()

方法2:手动设置App Insights特定属性

如果不想依赖Span Kind,可以手动添加App Insights识别请求所需的属性:

  • ai.operation.type:设置为Request
  • ai.operation.name:指定请求的显示名称

示例代码片段:

with tracer.start_as_current_span("hello") as span:
    # 手动标记为请求类型
    span.set_attribute("ai.operation.type", "Request")
    span.set_attribute("ai.operation.name", "hello-request")
    print("Hello, World!")

补充说明

  • 对于Web应用,推荐使用OpenTelemetry对应框架的Instrumentation包(如opentelemetry-instrumentation-flask或opentelemetry-instrumentation-fastapi),它们会自动创建符合规范的根请求Span,无需手动标记。
  • App Insights中,只有根Span且被标记为请求类型的条目才会出现在「Transactions(追踪)」视图中,其他无父级的Span默认被归类为Dependency。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:35:00