次の方法で共有


テレメトリの .NET.NET Aspire

.NET .NET Aspire の主な目的の 1 つは、アプリを簡単にデバッグおよび診断できるようにすることです。 .NET .NET Aspire 統合では、.NETOpenTelemetry SDKを使用して、監視の柱と呼ばれるログ記録、トレース、メトリックの構成が自動的に設定されます。

  • ログ記録: ログ イベントは、アプリの実行時に何が起こっているかを示します。 ベースライン セットは既定で .NET.NET Aspire 統合に対して有効になっており、より広範なログ記録をオンデマンドで有効にして特定の問題を診断できます。

  • トレース: トレースは、複数のマシンまたはプロセスに分散されている場合でも、同じ論理アクティビティの一部であるログ イベント (1 つの要求の処理など) を関連付けます。

  • メトリック: メトリックは、アプリのパフォーマンスと正常性の特性を単純な数値として公開します。 その結果、パフォーマンスのオーバーヘッドが低く、多くのサービスで常にオンのテレメトリとして構成されます。 これにより、潜在的な問題が検出されたときにアラートをトリガーするのにも適しています。

これらの種類のテレメトリを組み合わせることで、さまざまな監視および分析ツールを使用して、アプリケーションの動作とパフォーマンスに関する分析情報を得ることができます。 バッキング サービスによっては、一部の統合でこれらの機能の一部のみがサポートされる場合があります。

.NET Aspire OpenTelemetry 統合

.NET OpenTelemetry SDK には、ILoggerActivityMeterInstrument<T>など、いくつかの .NET API からデータを収集するための機能が含まれています。 これらの API は、ログ記録、トレース、メトリックなどのテレメトリ機能に対応しています。 .NET Aspire プロジェクトでは、ServiceDefaults プロジェクトで SDK 構成 OpenTelemetry 定義します。 詳細については、「.NET.NET Aspire サービスの既定値」を参照してください。

既定では、ConfigureOpenTelemetry メソッドを使用すると、アプリのログ記録、トレース、メトリックが有効になります。 また、他の監視ツールで収集できるように、これらのデータ ポイントのエクスポーターも追加されます。

監視のために OpenTelemetry データをエクスポートする

.NET OpenTelemetry SDK を使用すると、このテレメトリ データをデータ ストアまたはレポート ツールにエクスポートできます。 テレメトリ エクスポート メカニズムは、OpenTelemetry プロトコル (OTLP)に依存します。これは、REST または gRPC を介してテレメトリ データを送信するための標準化されたアプローチとして機能します。 ConfigureOpenTelemetry メソッドは、プロメテウスや Azure Monitor などの他の監視ツールにテレメトリ データを提供するエクスポーターも登録します。 詳細については、OpenTelemetry 構成を参照してください。

OpenTelemetry 環境変数

には、テレメトリを収集およびエクスポートするための最も重要な動作を構成する既知の環境変数 の リストがあります。 OpenTelemetry SDK (.NET SDK を含む) では、これらの変数の読み取りがサポートされます。

.NET Aspire プロジェクトは、エクスポートされたテレメトリでアプリの名前と ID を構成し、データをエクスポートする OTLP server のアドレス エンドポイントを設定する環境変数を使用して起動します。 例えば:

  • OTEL_SERVICE_NAME = myfrontend
  • OTEL_RESOURCE_ATTRIBUTES = service.instance.id=1a5f9c1e-e5ba-451b-95ee-ced1ee89c168
  • OTEL_EXPORTER_OTLP_ENDPOINT = http://localhost:4318

環境変数は、ローカル開発で自動的に設定されます。

.NET .NET Aspire 地域開発

.NET Aspire プロジェクトを作成すると、.NET Aspire ダッシュボードに既定でアプリ テレメトリを表示するための UI が表示されます。 テレメトリ データは OTLP を使用してダッシュボードに送信され、ダッシュボードはテレメトリ データを受信してメモリに格納する OTLP server を実装します。 .NET .NET Aspire デバッグ ワークフローは次のとおりです。

  • 開発者はデバッグを使用して プロジェクトを起動し、F5押します。
  • .NET .NET Aspire ダッシュボードと開発者コントロール プレーン (DCP) を開始します。
  • アプリ構成は、AppHost プロジェクトで実行されます。
    • OpenTelemetry 環境変数は、アプリの構成中に .NET プロジェクトに自動的に追加されます。
    • DCP は、エクスポートされたテレメトリ内のアプリの名前 (OTEL_SERVICE_NAME) と ID (OTEL_RESOURCE_ATTRIBUTES) を提供します。
    • OTLP エンドポイントは、ダッシュボードによって開始される HTTP/2 ポートです。 このエンドポイントは、各プロジェクトの OTEL_EXPORTER_OTLP_ENDPOINT 環境変数で設定されます。 これは、テレメトリをダッシュボードにエクスポートし直すようプロジェクトに指示します。
    • エクスポート間隔が小さい (OTEL_BSP_SCHEDULE_DELAYOTEL_BLRP_SCHEDULE_DELAYOTEL_METRIC_EXPORT_INTERVAL) ため、ダッシュボードでデータをすばやく使用できます。 ローカル開発では、効率性よりもダッシュボードの応答性に優先順位を付けるために、小さな値が使用されます。
  • DCP は、構成されたプロジェクト、コンテナー、実行可能ファイルを開始します。
  • 開始すると、アプリはテレメトリをダッシュボードに送信します。
  • ダッシュボードには、すべての .NET.NET Aspire プロジェクトのほぼリアルタイムのテレメトリが表示されます。

これらの手順はすべて内部的に行われるので、ほとんどの場合、開発者はこのプロセスの動作を確認するためにアプリを実行する必要があります。

.NET .NET Aspire 展開

.NET Aspire デプロイ環境では、環境に適した OpenTelemetry 環境変数を構成する必要があります。 たとえば、OTEL_EXPORTER_OTLP_ENDPOINT は、環境のローカル OTLP コレクターまたは監視サービスに対して構成する必要があります。

.NET .NET Aspire テレメトリは、OTLP をサポートする環境で最適に機能します。 OTEL_EXPORTER_OTLP_ENDPOINT が構成されていない場合、OTLP エクスポートは無効になります。

詳細については、「.NET.NET Aspire 展開」を参照してください。