Elastic社は、OpenTelemetry SDK for .NETのElasticディストリビューションのアルファ版リリースを発表した。このディストリビューションは、トレース、メトリクス、ログの収集を事前に設定する。さらに、このディストリビューションでは、OTLPエクスポーターがデフォルトで有効になっている。このプロジェクトはオープンソースである。
Elastic OpenTelemetryディストリビューションを使い始めるには、プロジェクトにElastic OpenTelemetry NuGetパッケージへの参照を追加する必要がある。これは、プロジェクト・ファイルにパッケージ参照を追加することで実現できる。
<PackageReference Include="Elastic.OpenTelemetry" Version="1.0.0-alpha.1" />
パッケージ・リファレンスを追加すると、開発者はアプリケーションでElastic OpenTelemetryディストリビューションを使用できるようになる。このディストリビューションには、OpenTelemetry SDKへの推移的依存関係が含まれている。したがって、OpenTelemetry SDKをプロジェクトに追加する必要はない。
ASP.NET Core用のOpenTelemetry SDKインスツルメンテーションを利用するために、開発者はOpenTelemetry.Instrumentation.AspNetCore NuGetパッケージも追加する必要がある。このパッケージには、ASP.NET Coreエンドポイントによって処理されるリクエストのインスツルメンテーション(トレースとメトリクス)を収集するためのサポートが含まれている。OpenTelemetry SDK には、トレース、メトリクス、およびログプロバイダを有効にして設定するためのIServiceCollection
の拡張メソッドが含まれている。Elasticディストリビューションは、デフォルトのSDK登録をオーバーライドする。
最低限、2つの環境変数を設定する必要がある。 OTEL_EXPORTER_OTLP_ENDPOINT、OTLP_EXPORTER_OTLP_HEADERSだ。Elastic ディストリビューションは、OTLP エクスポーターによるテレメトリー信号のエクスポートを自動的に有効にする。OTLPエクスポータは、少なくとも1つのエンドポイントを設定する必要がある。エンドポイントを設定する一般的なメカニズムは、環境変数を使うことである。
ディストリビューションの現在のアルファ・リリースは、機能が限定されている。Elastic社は、APIの設計と使いやすさの適合性を評価することを目標としている。しかし、すべてのアプリケーションシナリオに適しているわけではないため、本番環境での使用は推奨していない。
Elasticのプリンシパル・ソフトウェア・エンジニアであるMartijn Laarman氏は、InfoQにこのソリューションに関する洞察を語った。
このSDKは、OpenTelemetryをスタックのネイティブな一部にしようというElasticの全社的な取り組みと一致しています。我々のAPMソリューションは、すでに3年間、OpenTelemetry SDKを通してネイティブOLTPインテークをサポートしてきました。我々のプロプライエタリなオープンソース・エージェントもまた、長い間、OpenTelemetryブリッジを持ち、ユーザがOpenTelemetry SDK/Activityを使ってコードを計測できるようにしてきました。
さらに、Martijn Laarman氏は、彼らのOpenTelemetry .NETディストリビューションが、この旅における次のステップであり、より広いOpenTelemetryコミュニティに上流から貢献する前に彼らが新機能を評価できるよう、ベンダーニュートラルな製品の開発をユーザーに許していることを強調した。
コードは完全にオープンソース化されており、GitHubで入手可能だ。