在 .NET Aspire 中使用 OpenTelemetry
.NET Aspire 可帮助你记录云原生应用的行为,方法是在创建 .NET Aspire 项目时自动包含 OpenTelemetry 支持。
假设你是一家户外装备零售商的员工。 你已决定要记录遥测数据。 现在,你希望了解 .NET Aspire 如何帮助处理遥测。
在本单元中,你将了解 .NET Aspire 与 OpenTelemetry API 之间的集成。
.NET Aspire 和 OpenTelemetry
.NET Aspire 设计和实现的主要目标是确保云原生应用易于监视和故障排除。 .NET Aspire 通过使用 OpenTelemetry API 和自动设置遥测数据源,简化了确保完整应用可观测且完全经过检测的过程,无论你是使用模板创建新应用,还是将现有应用添加到 .NET Aspire 业务流程。
.NET Aspire 集成还内置了对遥测的支持。
在本地调试时,.NET Aspire 提供 .NET Aspire 仪表板。 此 Web 界面包含丰富的工具,它们会显示日志、图形格式的指标,以及时间线中的跟踪。
.NET Aspire 中的 OpenTelemetry 配置
在 .NET Aspire 解决方案中添加和配置 OpenTelemetry 的代码位于 ServiceDefaults 项目中。 在你找到的 Extensions.cs 文件中:
ConfigureOpenTelemetry()
方法,它会添加日志记录、指标和跟踪服务。AddOpenTelemetryExporters()
方法,它会添加 OpenTelemetry 协议 (OTLP) 导出程序。AddBuiltInMeters()
方法,它会添加 .NET 中内置的所有指标。
除非你想要添加其他导出程序或指标,否则可以按原样保留此代码。
当你想要完成以下任务时,应扩展此代码:
- 添加其他指标源或分布式跟踪数据,例如自定义指标。
- 添加导出程序以将遥测数据发送到应用程序性能管理 (APM) 系统,例如 Application Insights 或 Grafana。
导出遥测
OpenTelemetry 可以将它记录的数据导出到不同的工具,以便你选择支持所需分析的数据。
常见的遥测导出目标包括:
- Aspire 仪表板。 你稍后将在本模块中了解有关仪表板的详细信息。
- 其他应用程序性能管理 (APM) 工具,如 Prometheus 和 Grafana。
- Azure Application Insights。 Azure Monitor 的此功能可以分析和显示来自 Azure 中和其他来源(例如云原生应用)的许多源的行为数据。