Live:CloudOps Webinars & Hands-on Workshops ·Register ↗
メインコンテンツまでスキップ

.NET での OpenTelemetry

.NET における OpenTelemetry は、フレームワークの既存のインストルメンテーション機能を基盤としているため、他の言語での実装とは異なる特徴があります。他のプラットフォームでは OpenTelemetry が完全なテレメトリ API を提供する必要がありますが、.NET はログ、メトリクス、アクティビティのためのプラットフォーム API を通じて、すでに堅牢な組み込みメカニズムを提供しています。OpenTelemetry .NET 実装は、新しいコンポーネントを作成するのではなく、これらのネイティブコンポーネント (System.Diagnostics など) を単純に活用します。これは、ライブラリ作成者がすでに使い慣れている標準的な .NET API を使用でき、OpenTelemetry がこれらの既存のインストルメンテーションポイントとシームレスに統合されることを意味します。

OpenTelemetry ライブラリ

.NET における OpenTelemetry は、3 つの基本的なパッケージカテゴリを中心に構成されています。

  1. Core API パッケージは、テレメトリ収集のためのコアインターフェースと実装を含む、必須の基盤とベース機能を提供します。

  2. Instrumentation パッケージは、さまざまな .NET コンポーネントや人気のあるライブラリからテレメトリデータを自動的に収集し、ASP.NET Core、HTTP クライアント、Entity Framework などのソースからメトリクス、トレース、ログをキャプチャします。

  3. Exporter パッケージは、さまざまなオブザーバビリティプラットフォームへの橋渡しとして機能し、収集したテレメトリデータを Jaeger、Prometheus、または OTLP プロトコルをサポートする任意のシステムなど、さまざまな宛先に送信できるようにします。

これらのコンポーネントは、NuGet を通じて利用可能な統合されたシステムとして連携し、.NET アプリケーションに完全なオブザーバビリティソリューションを提供します。

以下の表は、これらのパッケージについて説明しています。

パッケージ説明
OpenTelemetryコア機能を提供するメインの OTEL ライブラリです
OpenTelemetry.Instrumentation.AspNetCoreASP.NET Core と Kestrel 向けのインストルメンテーションです
OpenTelemetry.Instrumentation.GrpcNetClientgRPC クライアント向けのインストルメンテーションです
OpenTelemetry.Instrumentation.HttpHttpClient および HttpWebRequest クラス向けのインストルメンテーションです
OpenTelemetry.Instrumentation.SqlClientEntity Framework Core などのデータベース操作をトレースするために使用される SqlClient 向けのインストルメンテーションです
OpenTelemetry.Exporter.ConsoleOTLP プロトコルを使用するエクスポーターです
OpenTelemetry.Exporter.OpenTelemetryProtocolOTLP プロトコルを使用するエクスポーターです
OpenTelemetry.Exporter.Prometheus.AspNetCoreASP.NET Core エンドポイントを使用して実装された Prometheus 向けのエクスポーターです
OpenTelemetry.Exporter.ZipkinZipkin トレーシング向けのエクスポーターです

AWS .NET OpenTelemetry ライブラリ

AWS は、NuGet で利用可能な OpenTelemetry パッケージの最新版をリリースしました。これらのパッケージは、シンプルさと最新の OpenTelemetry 命名規則への準拠を目的として再設計されています。AWS SDK for .NET における強化されたオブザーバビリティのサポートや、Amazon Bedrock を含む AWS サービスの追加インストルメンテーション、さらに複数のバグ修正、機能強化、OpenTelemetry コミュニティによる貢献などの新機能が含まれています。

以下の表は、これらのパッケージについて説明しています。

パッケージ説明
OpenTelemetry.Instrumentation.AWSAWS SDK for .NET の使用時に、AWS サービスに関する追加データでメトリクスとトレーシングの呼び出しを強化します。
OpenTelemetry.Instrumentation.AWSLambda受信スパンを作成するために AWS Lambda ハンドラーをインストルメントする SDK メソッドです
OpenTelemetry.Resources.AWSアプリケーションの実行場所に基づくメタデータでテレメトリを強化する AWS 固有のリソースディテクターです。Amazon EC2、AWS Elastic Beanstalk、Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS) のサポートが含まれます
OpenTelemetry.Extensions.AWSAWS X-Ray を介した Trace Context の伝播をサポートします。