用于 Azure Monitor OpenTelemetry 的自动数据收集和资源检测器

本文介绍如何Azure Monitor OpenTelemetry 自动收集遥测数据,以及资源检测器如何使用一致的元数据丰富遥测数据。 你了解默认收集哪些信号,以及资源检测器如何填充服务标识和环境详细信息等属性,以便 Application Insights 数据更易于跨.NET、Java、Node.js和Python应用程序进行筛选、关联和故障排除。

若要了解有关 OpenTelemetry 概念的详细信息,请参阅 OpenTelemetry 概述

注释

有关 Azure 函数应用,请参阅 在 Azure Functions 中使用 OpenTelemetry

包含的检测库

Azure Monitor发行版通过捆绑 OpenTelemetry 检测库自动收集数据。

请求

依赖

日志记录

  • ILogger

有关 ILogger 的详细信息,请参阅 C# 和 .NET 中的记录代码示例

脚注

  • ¹:支持未经处理的/未捕获的异常的自动报告
  • ²:支持 OpenTelemetry 指标

注释

Azure Monitor OpenTelemetry 发行版包括自定义映射和逻辑,用于自动发出 Application Insights 标准指标。 出于计费目的,所有 OpenTelemetry 指标(无论是从检测库自动收集还是从自定义编码中手动收集)当前都被视为 Application Insights 自定义指标了解详细信息

小窍门

若要减少或增加发送到Azure Monitor的日志数,请配置日志记录以设置适当的日志级别或应用筛选器。 例如,可以选择仅将 WARNINGERROR 日志发送到Azure Monitor。

资源检测器

资源检测器在启动时发现环境元数据,并填充 OpenTelemetry 资源属性 ,例如 service.namecloud.providercloud.resource_id。 此元数据为 Application Insights 中的体验提供支持,例如应用程序映射和计算链接,并改进了跟踪、指标和日志之间的关联。

小窍门

资源属性描述过程及其环境。 Span 属性描述单个操作。 将资源属性用于应用级属性,例如 service.name

支持的环境

环境 检测的工作原理 备注
Azure App 服务 语言 SDK 或 Azure Monitor 分发版读取已知的应用服务环境变量和主机元数据 使用本文中的指南时,请与.NET、Java、Node.js和Python配合使用。
Azure Functions 请参阅 Azure Functions OpenTelemetry 操作说明 所有Azure Functions相关的指导都在那里。
Azure 虚拟机 语言 SDK 或分发版会查询 Azure 实例元数据服务 确保 VM 能够访问实例元数据服务终结点。
Azure Kubernetes Service (AKS) 使用 OpenTelemetry 收集器 k8sattributes 处理器来添加 Kubernetes 元数据 建议用于 AKS 中运行的所有语言。
Azure 容器应用 检测器在可用时映射环境变量和资源标识符 您还可以设置OTEL_RESOURCE_ATTRIBUTES以填补空白。

OTLP 引入注意事项

  • cloud.resource_id改进了与Azure资源的计算链接。 如果缺少此属性,某些体验可能不会显示生成数据的Azure资源。

  • Application Insights 使用 service.name 来派生云角色名称。 选择每个服务的稳定名称以避免应用程序映射中的碎片节点。

  • cloud.resource_id改进了与Azure资源的计算链接。 如果缺少此属性,某些体验可能不会显示生成数据的Azure资源。

故障排除、反馈和支持

小窍门

以下部分适用于所有 OpenTelemetry 发行版文章。

故障排除

OpenTelemetry 反馈

若要提供反馈,请查看以下内容:

支持

选择所选语言的选项卡,以发现支持选项。

后续步骤