.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 Protocol (OTLP) エクスポーターが追加されます。AddBuiltInMeters()
メソッド。.NET に組み込まれているすべてのメトリックが追加されます。
他のエクスポーターやメトリックを追加する場合を除き、このコードはそのままにしておくことができます。
このコードは、次の場合に拡張する必要があります。
- カスタム メトリックなど、メトリックまたは分散トレース データのソースをさらに追加する。
- Application Insights や Grafana などの Application Performance Management (APM) システムにテレメトリ データを送信するためにエクスポーターを追加する。
テレメトリのエクスポート
OpenTelemetry では、記録されたデータをさまざまなツールにエクスポートできるため、必要な分析をサポートするものを選択できます。
一般的なテレメトリ エクスポート先は次のとおりです。
- Aspire ダッシュボード。 ダッシュボードについては、このモジュールで後ほど詳しく説明します。
- Prometheus や Grafana などの他の Application Performance Management (APM) ツール。
- Azure Application Insights。 Azure Monitor のこの機能を使用すると、Azure 内で、およびクラウドネイティブ アプリなどの他のソースから、多くのソースの動作データを分析して表示できます。