使用 Azure Monitor 和第三方工具查看遥测数据
你的应用正在收集遥测数据,现在需要一种更全面的方法来查看它。 在本单元中,你将了解如何在许多不同的工具中查看遥测数据。
监视和查看遥测数据
查看遥测数据的常见方法是结合使用 Prometheus 和 Grafana。 Prometheus 是一个开源监视系统,用于从云原生应用收集指标。 Grafana 是一种开源可视化工具,可用于创建仪表板来查看 Prometheus 收集的指标。
普罗 米修斯
第一步是添加 Prometheus 容器并将其配置为从应用中的每个微服务收集数据。 然后,添加 Prometheus .NET 客户端库以从应用收集指标。
OpenTelemetry 为 Prometheus 提供导出程序。 您可以通过添加 OpenTelemetry.Exporter.Prometheus.AspNetCore
NuGet 包将此导出程序添加到您的应用程序。 此包以可以理解的格式将指标导出到 Prometheus。 将当前控制台导出程序替换为 Prometheus 导出程序。
为应用中的所有微服务添加终结点。 例如:
global:
scrape_interval: 1s
scrape_configs:
- job_name: 'products'
static_configs:
- targets: ['backend:8080']
- job_name: 'store'
static_configs:
- targets: ['frontend:8080']
Grafana
Grafana 是一种开源可视化工具,可用于创建仪表板来查看 Prometheus 收集的指标。 可以将 Grafana 配置为连接到 Prometheus 并在仪表板中显示指标。 就像以前一样,将 Grafana 容器添加到应用,并将其配置为连接到 Prometheus。
在 YAML 文件中将 Prometheus 作为数据源添加到 Grafana 中:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
isDefault: true
access: proxy
editable: true
启用分布式跟踪
OpenTelemetry 同时支持 Jaeger 和 Zipkin。 在本模块中,你将使用 Zipkin,这是一个开源分布式跟踪系统。 它有助于收集解决微服务体系结构中延迟问题所需的计时数据。 它同时管理此数据的收集和查找。
在诊断项目中,需要通过 OpenTelemetry.Exporter.Zipkin
NuGet 包添加对 Zipkin 的支持。 然后将代码添加到 AddObservability
方法以将数据导出到 Zipkin。
使用 Application Insights 获得更深入的洞察
有一个工具可以组合查看指标和查看分布式跟踪,然后将其与日志中的数据合并。 Application Insights 是一种可扩展的应用程序性能管理(APM)服务。 可以使用它监视实时 Web 应用程序。 Application Insights 会自动检测性能异常。 其中包含功能强大的分析工具,可帮助你诊断问题并了解用户在应用中实际执行了哪些操作。
与上述工具一样,需要将 NuGet 包添加到解决方案 Azure.Monitor.OpenTelemetry.AspNetCore
,然后将 Azure Monitor 作为导出程序引入诊断项目。