Splunk Distribution of OpenTelemetry .NET を設定する 🔗
Splunk Distribution of OpenTelemetry .NET は、インストルメンテーションのニーズに合わせて設定することができます。ほとんどの場合、基本的な設定を変更するだけで使い始めることができます。より高度な設定も可能です。
設定方法 🔗
Splunk Distribution of OpenTelemetry .NETの設定は、以下の方法で変更できます:
.NETアプリケーションの場合は、環境変数を設定します。Windowsでは、すべての.NETアプリケーションで自動インストルメンテーションをグローバルに有効にする場合を除き、プロセス・スコープに設定します。
Windowsサービスとして実行される.NET Frameworkアプリケーションでは、サポートされている場合、app.configファイルの
appSettings
ブロックで設定を追加するか、Windowsレジストリを使用して環境変数を設定することができます。ASP.NETアプリケーションの場合は、web.configファイルの
appSettings
ブロックに設定を追加します。例:<configuration> <appSettings> <add key="OTEL_SERVICE_NAME" value="my-service-name" /> </appSettings> </configuration>
あるいは、以下のいずれかの方法で環境変数を設定することもできます:
applicationHost.config
、アプリケーション・プール用に<environmentVariables>
要素を追加します。W3SVC
とWAS
の環境変数を設定します。
ASP.NET Coreアプリケーションの場合は、web.configファイルの
<aspNetCore>
ブロック内に<environmentVariable>
要素を追加します。
一般設定 🔗
以下の設定は、ほとんどのインストルメンテーションシナリオで共通です:
エクスポート設定 🔗
以下の設定は、トレースエクスポーターとそのエンドポイントをコントロールします:
AlwaysOn Profiling の .NET OTel 設定 🔗
以下の設定は、.NET インストルメンテーションの AlwaysOn Profiling 機能を制御します:
注釈
AlwaysOn Profiling for .NET は、.NET 6.0 以降と互換性があります。AlwaysOn Profiling の詳細については、Splunk APMのAlwaysOn Profilingの概要 を参照してください。
トレース伝播の設定 🔗
以下の設定はトレース伝搬をコントロールします:
サンプラーの設定 🔗
以下の設定はトレースサンプリングをコントロールします:
リソースディテクターの構成 🔗
リソースディテクターを使用して、アプリケーションのスパンの追加属性を取得できます。
以下の設定は、リソースディテクターを制御します:
以下の資源探知機が利用できます:
インストルメンテーション設定 🔗
以下の設定は、インストルメンテーションとトレースの動作を制御します:
サーバートレース情報 🔗
モバイルおよびウェブアプリケーションからのリアルユーザーモニタリング(RUM)リクエストとサーバートレース・データを接続するために、トレース・レスポンス・ヘッダーがデフォルトで有効になっています。インストルメンテーションは、HTTP レスポンスに以下のレスポンス・ヘッダーを追加します:
Access-Control-Expose-Headers: Server-Timing
Server-Timing: traceparent;desc="00-<serverTraceId>-<serverSpanId>-01"
Server-Timing
ヘッダーは、traceId
と spanId
パラメータを traceparent
形式で含みます。詳しくは、W3CウェブサイトのServer-Timingとtraceparentのドキュメントを参照してください。
注釈
トレース・レスポンス・ヘッダーを無効にする必要がある場合は、SPLUNK_TRACE_RESPONSE_HEADER_ENABLED
を false
に設定します。
診断ロギングの設定 🔗
以下の設定は、Splunk Distribution of OpenTelemetry .NETの内部ロギングを制御します:
デフォルトのサービス名の変更 🔗
デフォルトでは、Splunk Distribution of OpenTelemetry .NETは、成功するまで以下の手順を試してサービス名を取得します:
デフォルトのサービス名は、エントリー・アセンブリの名前です。たとえば、.NETプロジェクトファイルの名前です。ASP.NETアプリケーションの場合、デフォルトのサービス名は
SiteName[/VirtualPath]
です。エントリー・アセンブリが利用できない場合、インストルメンテーションは現在のプロセス名を使用しようとします。アセンブリを使用して直接起動する場合、プロセス名は
dotnet
になります。例えば、dotnet InstrumentedApp.dll
です。
すべての手順が失敗した場合、サービス名のデフォルトは unknown_service
になります。
注釈
デフォルトのサービス名を上書きするには、OTEL_SERVICE_NAME
環境変数を設定します。
手動インストールのための環境変数 🔗
インストルメンテーションを手動でデプロイする場合、以下の環境変数を必ず設定する必要があります:
環境変数 |
値 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
環境変数 |
値 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
環境変数 |
値 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注釈
Linux でのデフォルトのインストールパスは $HOME/.otel-dotnet-auto
です。