Azure Monitor およびサードパーティ製ツールを使用して利用統計情報を表示する
アプリでテレメトリ データを収集するにつれて、より包括的な表示方法が必要になりました。 このユニットでは、さまざまなツールでテレメトリ データを表示する方法を確認します。
利用統計情報の監視と表示
テレメトリ データを表示する一般的な方法は、Prometheus と Grafana を一緒に使用することです。 Prometheus は、クラウドネイティブ アプリからメトリックを収集するオープンソースの監視システムです。 Grafana はオープンソースの視覚化ツールです。Prometheus によって収集されたメトリックを表示するためのダッシュボードの作成に使用します。
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 によって収集されたメトリックを表示するダッシュボードの作成に使用できます。 Prometheus に接続し、メトリックをダッシュボードに表示するように Grafana を構成できます。 先ほどと同様に、アプリに 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 のサポートを追加する必要があります。 次に、Zipkin にデータをエクスポートするコードを AddObservability
メソッドに追加します。
Application Insights の詳細を確認する
メトリックの監視と分散トレースの表示を組み合わせて、それをログのデータとマージできるツールがあります。 Application Insights は、拡張可能なアプリケーション パフォーマンス管理 (APM) サービスです。 実行中の Web アプリの監視に使用できます。 Application Insights は、パフォーマンスの異常を自動的に検出します。 組み込まれている強力な分析ツールを使えば、問題を診断し、ユーザーがアプリを使用して実行している操作を把握できます。
前述のツールと同様に、NuGet パッケージをソリューション Azure.Monitor.OpenTelemetry.AspNetCore
に追加し、Azure Monitor をエクスポーターとして診断プロジェクトに導入する必要があります。