使用 Azure 監視器和第三方工具檢視遙測

已完成

您的應用程式正在收集遙測數據,您現在需要更全面的方法來檢視它。 在此單元中,您將瞭解如何在許多不同的工具中檢視遙測數據。

監視和檢視遙測數據

檢視遙測數據的常見方法是同時使用 Prometheus 和 Grafana。 Prometheus 是一種開放原始碼監視系統,可從雲端原生應用程式收集計量。 Grafana 是開放原始碼視覺效果工具,可用來建立儀錶板來檢視 Prometheus 收集的計量。

Prometheus

第一個步驟是新增 Prometheus 容器,並將其設定為從應用程式中的每個微服務收集數據。 然後,您會新增 Prometheus .NET 用戶端連結庫,以從應用程式收集計量。

Screenshot that shows the configured Prometheus app showing the health of the eShopLite app.

OpenTelemetry 為 Prometheus 提供導出工具。 您可以藉由包含 NuGet 套件, OpenTelemetry.Exporter.Prometheus.AspNetCore 將此匯出工具新增至您的應用程式。 此套件會以可瞭解的格式將計量導出至 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。

Screenshot that shows an ASP.NET dashboard in Grafana.

您可以將 Prometheus 新增為 YAML 檔案中的 Grafana 資料來源:

apiVersion: 1

datasources:
- name: Prometheus
  type: prometheus
  url: http://prometheus:9090 
  isDefault: true
  access: proxy
  editable: true

啟用分散式追蹤

OpenTelemetry 同時支援 Jaeger 和 Zipkin。 在本課程模組中,您會使用 Zipkin,這是開放原始碼分散式追蹤系統。 這有助於收集針對微服務架構中延遲問題進行疑難解答所需的計時數據。 它會管理此數據的集合和查閱。

Screenshot that shows Zipkin showing the dependencies of the eShopLite app Store sending requests to the Products service.

在診斷專案中,您必須透過 OpenTelemetry.Exporter.Zipkin NuGet 套件新增 Zipkin 的支援。 接著,您會將程式代碼新增至 方法, AddObservability 以將數據匯出至 Zipkin。

使用 Application Insights 更深入

有一個工具可以結合查看計量和檢視分散式追蹤,然後將它與記錄中的數據合併。 Application Insights 是可延伸的應用程式效能管理 (APM) 服務。 您可以使用它來監視即時 Web 應用程式。 Application Insights 會自動偵測效能異常。 它包含功能強大的分析工具,可協助您診斷問題,並瞭解用戶實際使用應用程式的功能。

Screenshot that shows Application Insights showing the health of the eShopLite app.

如同上述工具,您需要將 NuGet 套件新增至您的解決方案 Azure.Monitor.OpenTelemetry.AspNetCore ,然後將 Azure 監視器作為匯出工具導入診斷專案。