Azure 上的 OpenTelemetry

Azure 与 OpenTelemetry 的集成为以下用途提供了一整套产品:

  • 以标准化方式收集遥测数据
  • 在 Azure Monitor 和本地工具上通过特选体验使用数据

本文将向你介绍 OpenTelemetry 服务,帮助你了解 Microsoft 的战略投资。

有关 Azure 上的 OpenTelemetry 的详细信息,请参阅 OpenTelemetry 路线图

数据收集

Azure Monitor OpenTelemetry 发行版是 Microsoft 的 OpenTelemetry 软件开发工具包 (SDK) 的自定义、受支持和开源版本。 它支持 .NET、Java、JavaScript (Node.js) 和 Python。 对于大多数客户,我们建议使用 Azure Monitor OpenTelemetry 发行版,我们会继续投资以向其添加新功能。

它侧重于通过将以下项捆绑在一起来实现轻松启用:

  • OpenTelemetry SDK 和 API
  • 跨日志、指标和跟踪的检测库

此外,Azure Monitor OpenTelemetry 基于发行版的自动检测解决方案已集成到适用于 Java 和 Python 应用的应用服务中,并集成到 Java Functions 中。

使用 OpenTelemetry API 检测 Azure SDK,以支持端到端可观测性。 所有受支持的语言都会被检测以发出 OpenTelemetry HTTP 和/或消息跟踪语义;正在检测 .NET 和 Java 以发出 OpenTelemetry HTTP 指标语义。

.NET OpenTelemetry 实现使用框架中的日志记录、指标和活动 API 进行检测。 OpenTelemetry SDK 从这些 API 和其他源(通过检测库)收集遥测数据,然后将数据导出到应用程序性能监视 (APM) 系统进行存储和分析。

边缘的 Azure Monitor 管道是一套功能强大的解决方案,旨在促进从边缘环境大规模引入和路由数据,从而无缝实现跨云、边缘和多云的可观测性。 它使用 OpenTelemetry Collector。 目前,在公共预览版中,它可以部署在启用了 Arc 的 Kubernetes 群集上,并且可以收集 OpenTelemetry 协议 (OTLP) 日志。

OpenTelemetry Collector Azure 数据资源管理器导出程序是可以插入 OpenTelemetry Collector 的数据导出程序组件。 它支持将数据从多个接收器引入到 Azure 数据资源管理器、Azure Synapse 数据资源管理器和 Fabric 中的实时分析。

Azure Functions 允许以 OTLP 格式导出日志和跟踪数据。 它支持来自主机进程和工作进程的遥测数据。 启用后,可将数据发送到任何符合 OpenTelemetry 的终结点。

数据平台和使用

.NET Aspire 是一个有意见的云原生堆栈,默认包含 OpenTelemetry 带来的可观测性。 “开发人员仪表板”是它的一个部分,用于在调试期间实时观察 OpenTelemetry 信号。 除 .NET 之外,它还能从任何 OpenTelemetry 支持的语言的应用程序中使用 OTLP 收集日志、指标和跟踪。

Azure Monitor Application Insights 是 Azure 的 APM,它支持云规模应用程序监视,并擅长云原生应用程序和基于 VM 的应用程序的可观测性。 Application Insights 提供了由 OpenTelemetry 支持的体验来增强应用程序的性能、可靠性和质量。 例如,应用程序映射是应用程序体系结构和组件的交互的直观概览;事务搜索有助于识别问题并优化性能。