.NET アプリケーションモニタリング
概要
AWS 上で動作する .NET アプリケーションを、メトリクス、ログ、トレースにわたる完全なオブザーバビリティでモニタリングします。このエン トリでは、2 つの補完的なパスを説明します:AWS SDK、CloudWatch エージェント、および X-Ray SDK を使用する CloudWatch ネイティブアプローチと、OTel .NET SDK を使用して CloudWatch および X-Ray に OTLP エクスポートする OpenTelemetry アプローチです。
.NET における OpenTelemetry は、フレームワークの既存の計装 API(System.Diagnostics、ILogger、Meter)の上に構築するという点でユニークです。ライブラリ作成者は標準の .NET API を使用して計装し、OTel SDK はそのテレメトリをシームレスに収集します。これにより、ASP.NET Core を既に使用しているチームにとって導入が簡単になります。
ベンダーニュートラルな計装でバックエンドを柔軟に切り替えたい場合は OpenTelemetry を選択してください。AWS サービスとの最もシンプルな統合を求め、CloudWatch エコシステムにコミットしている場合は CloudWatch ネイティブパスを選択してください。
完全なセットアップの詳細については、CloudWatch Application Signals ドキュメントを参照してください。
前提条件
- .NET 6.0 以降(X-Ray SDK の場合は .NET Framework 4.6.2 以降)
- CloudWatch Logs、CloudWatch メトリクス、および X-Ray の IAM 権限を持つ AWS アカウント
- EC2/オンプレミスの場合:CloudWatch エージェントのインストール
- Lambda の場合:
AWSXRayDaemonWriteAccessおよびCloudWatchLambdaInsightsExecutionRolePolicyを持つ Lambda 実行ロール - 必要なパッケージをインストールするための NuGet アクセス
アーキテクチャ
┌─────────────────────────────────────────────────────────────────┐
│ .NET Application │
│ │
│ ┌─────────────────────┐ ┌──────────────────────────────┐ │
│ │ OTel SDK │ │ AWS SDK / X-Ray SDK │ │
│ │ (Traces, Metrics, │ │ (PutMetricData, PutLog, │ │
│ │ Logs via OTLP) │ │ X-Ray segments) │ │
│ └──────────┬──────────┘ └───────────────┬──────────────┘ │
└─────────────┼─────────────────────────────────┼─────────────────┘
│ OTLP │ Direct API / Agent
▼ ▼
┌──────────────────────┐ ┌──────────────────────────┐
│ CloudWatch Agent / │ │ CloudWatch / X-Ray │
│ ADOT Collector │ │ (Direct ingest) │
└──────────┬───────────┘ └────────────┬─────────────┘
│ │
▼ ▼
┌────────────────────────────────────────────────────────────┐
│ Amazon CloudWatch + AWS X-Ray │
│ (Metrics, Logs Insights, ServiceMap, Traces) │
└────────────────────────────────────────────────────────────┘