注意
The SignalFx Instrumentation for .NET reached End of Support on February 21, 2025. The library has been archived and is no longer maintained.
新規に .NET エコシステムをインストルメンテーションするお客様は、Splunk Distribution of OpenTelemetry .NET をご利用ください。既存のお客様は、同様の機能を提供する Splunk Distribution of OpenTelemetry .NET への移行をご検討ください。移行方法については、SignalFx .NET Instrumentationからの移行 を参照してください。
SignalFx Instrumentation for .NETの設定 🔗
SignalFx Instrumentation for .NET は、インストルメンテーションのニーズに合わせて設定できます。ほとんどの場合、基本設定を変更するだけで十分です。より高度な設定も可能です。
設定方法 🔗
SignalFx Instrumentation for .NETの設定は、以下の方法で変更できます:
環境変数を設定します。Windowsでは、すべての.NETアプリケーションで自動インストルメンテーションをグローバルに有効にする場合を除き、プロセス・スコープに設定します。
web.configまたはapp.configファイルを編集します。例:
<configuration> <appSettings> <add key="SIGNALFX_SERVICE_NAME" value="my-service-name" /> </appSettings> </configuration>
JSON設定ファイルを生成し、
SIGNALFX_TRACE_CONFIG_FILE
環境変数にファイルのパスを設定します。キーと値のペアとして設定を定義できます:{ "SIGNALFX_SERVICE_NAME": "my-service-name" }
注釈
環境変数を使用して定義された設定は、XMLおよびJSON設定ファイルの設定を上書きします。
一般設定 🔗
以下の設定は、ほとんどのインストルメンテーションシナリオで共通です:
設定 |
説明 |
---|---|
|
すべてのスパンに追加される |
|
アプリケーションまたはサービスの名前。設定されていない場合、インストルメンテーションは適切なデフォルト名を探します。デフォルトのサービス名の変更 を参照してください。 |
|
アプリケーションのバージョン。設定すると、すべてのスパンに |
|
プロファイラがインストルメンテーションできる実行ファイル名。セミコロンで区切られた複数の値をサポートします。例: |
|
プロファイラがインストルメンテーションできない実行ファイル名。セミコロンで区切られた複数の値をサポートします。例: |
|
JSON設定ファイルのパス。JSONファイルを使用してインストルメンテーションを設定する場合は、この環境変数を設定します。詳細は 設定方法 を参照してください。 |
|
トレーサーを非アクティブにするには、 |
|
|
|
インストールされたインストルメンテーションの場所。Linux 上のアプリケーションまたは Azure App Service のバックグラウンド サービスでインストルメンテーションを行う場合は、 |
エクスポート設定 🔗
以下の設定は、トレースエクスポーターとそのエンドポイントをコントロールします:
設定 |
説明 |
---|---|
|
お客様の組織の Splunk Observability Cloud アクセストークン。このトークンを使用すると、Splunk Observability Cloud インジェスト・エンドポイントに直接トレースを送信できるようになります。アクセストークンを取得するには、Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。 |
|
組織のレルムの名前。例えば、 |
|
トレースエクスポーターがトレースを送信する URL。デフォルト値は |
|
メトリクス・エクスポーターがメトリクスを送信する URL。デフォルト値は |
|
|
|
トレースがエクスポートされる前の、トレース内のクローズドスパンの最小数。デフォルト値は |
トレース伝播の設定 🔗
以下の設定はトレース伝搬をコントロールします:
設定 |
説明 |
---|---|
|
トレーサーのプロパゲータのカンマ区切りリスト。利用可能なプロパゲータは |
AlwaysOn Profilingの .NET 設定 🔗
以下の設定は、.NET インストルメンテーションの AlwaysOn Profiling 機能を制御します:
環境変数 |
説明 |
---|---|
|
AlwaysOn Profilingを有効にします。デフォルト値は |
|
メモリプロファイリングを有効にします。デフォルト値は |
|
プロファイラログのコレクタエンドポイント。デフォルト値は |
|
コールスタックをサンプリングする頻度をミリ秒単位で指定します。デフォルト値は |
注釈
AlwaysOn Profilingの詳細については、Splunk APMのAlwaysOn Profilingの概要 を参照してください。
メトリクス設定 🔗
以下の設定がメトリクスの収集を制御します:
設定 |
説明 |
---|---|
|
特定のメトリクス・グループをアクティブまたは非アクティブにするための構成パターン。例えば、 |
注釈
メモリ・プロファイリングが有効になっている場合、NetRuntime メトリクスは常に収集されます。
インストルメンテーション設定 🔗
以下の設定は、インストルメンテーションとトレースの動作を制御します:
設定 |
説明 |
---|---|
|
グローバル・スパン・タグを指定するキーと値のペアのカンマ区切りリスト。例: |
|
属性値の最大長。この値より長い値は切り捨てられます。 |
|
停止させたいライブラリ・インストルメンテーションのカンマ区切りリスト。各値は内部インストルメンテーションIDと一致しなければなりません。インテグレーション識別子のリストについては、対応ライブラリ を参照してください。 |
|
特定のインストルメンテーション・ライブラリをアクティブまたは非アクティブにします。たとえば、Kafka インストルメンテーションを非アクティブにするには、 |
ライブラリ固有のインストルメンテーション設定 🔗
以下の設定は、特定のインストルメンテーションの動作を制御します:
設定 |
説明 |
---|---|
|
スパンがエラーとして設定されるHTTPクライアントのレスポンス・ステータスまたは範囲のカンマ区切りリスト、例: |
|
|
|
|
|
|
|
Redisコマンドのタグ付けを |
|
更新されたWCFインストルメンテーションを有効にし、WCFサーバーの例外処理が確立されるWCFパイプラインの後半まで実行を遅らせます。デフォルト値は |
|
HTTPヘッダーのキーとタグ名をカンマ区切りでマップしたもので、トレースにタグとして自動的に適用されます。例: |
|
URL部分文字列のカンマ区切りリスト。一致するURLはトレーサーによって無視されます。例えば、 |
|
メソッド開始時にコンシューマ・スコープを閉じ、メソッド終了時に新しいコンシューマ・スコープを開始します。デフォルト値は |
|
該当する場合、ASP.NET のスパン名とリソース名をルーティング構成に基づくように有効にします。デフォルト値は |
サーバートレース情報 🔗
モバイルおよびウェブアプリケーションからのリアルユーザーモニタリング(RUM)リクエストとサーバートレース・データを接続するために、トレース・レスポンス・ヘッダーがデフォルトで有効になっています。インストルメンテーションは、HTTP レスポンスに以下のレスポンス・ヘッダーを追加します:
Access-Control-Expose-Headers: Server-Timing
Server-Timing: traceparent;desc="00-<serverTraceId>-<serverSpanId>-01"
Server-Timing
ヘッダーには、traceId
と spanId
パラメーターが traceparent
形式で含まれています。W3C tracecontextとW3C baggage context propagationはデフォルトで有効になっています。詳細については、W3CウェブサイトのServer-Timingとtraceparentのドキュメントを参照してください。
注釈
トレース・レスポンス・ヘッダーを無効にする必要がある場合は、SIGNALFX_TRACE_RESPONSE_HEADER_ENABLED
を false
に設定します。
クエリー文字列の設定 🔗
注釈
この機能は、ASP.NET Coreアプリケーションのインストルメンテーションでのみ使用できます。
以下の設定は、ASP.NET Core のインストルメンテーションされたアプリケーションの http.url
タグにクエリー文字列を含めることを制御します。
設定 |
説明 |
---|---|
|
ASP.NET Core アプリケーションの |
|
クエリ文字列を難読化するためのカスタム正規表現。デフォルト値を例に示します。 |
|
|
クエリー文字列を難読化することで、アプリケーションが機密データを Splunk に送信するのを防ぎます。
クエリー難読化のためのデフォルトの正規表現は以下の通りです:
((?i)(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\s|%20)*(?:=|%3D)[^&]+|(?:""|%22)(?:\s|%20)*(?::|%3A)(?:\s|%20)*(?:""|%22)(?:%2[^2]|%[^2]|[^""%])+(?:""|%22))|bearer(?:\s|%20)+[a-z0-9\._\-]|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\w=-]|%3D)+\.ey[I-L](?:[\w=-]|%3D)+(?:\.(?:[\w.+\/=-]|%3D|%2F|%2B)+)?|[\-]{5}BEGIN(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY[\-]{5}[^\-]+[\-]{5}END(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY|ssh-rsa(?:\s|%20)*(?:[a-z0-9\/\.+]|%2F|%5C|%2B){100,})`
診断ロギングの設定 🔗
以下の設定は、SignalFx Instrumentation for .NETの内部ロギングを制御します:
設定 |
説明 |
---|---|
|
|
|
ファイルログを有効にします。デフォルト値は |
|
トレーサー・ログ・ファイルの最大サイズをバイト単位で指定します。デフォルト値は |
|
|
|
Serilog フォーマット規則を使用して |
|
トレーサーのデバッグモードを有効にします。デフォルト値は |
|
.NET トレーサーログのディレクトリ。存在する場合は、 |
|
トレーサーログファイルの同一ログメッセージ間の秒数。この環境変数を |
|
起動時に診断ログを有効にします。デフォルト値は |
デフォルトのサービス名の変更 🔗
デフォルトでは、SignalFx Instrumentation for .NETは、以下のステップを成功するまで試してサービス名を取得します:
SignalFx .NET Tracing Azure Site Extensionの場合、デフォルトのサービス名は、
WEBSITE_SITE_NAME
環境変数で定義されたサイト名です。ASP.NETアプリケーションの場合、デフォルトのサービス名は
SiteName[/VirtualPath]
です。その他のアプリケーションの場合、デフォルトのサービス名はエントリー・アセンブリの名前になります。たとえば、.NETプロジェクトファイルの名前です。
エントリー・アセンブリが利用できない場合、インストルメンテーションは現在のプロセス名を使用しようとします。アセンブリを使用して直接起動する場合、プロセス名は
dotnet
になります。例えば、dotnet InstrumentedApp.dll
です。
すべての手順が失敗した場合、サービス名のデフォルトは UnknownService
になります。
デフォルトのサービス名を上書きするには、SIGNALFX_SERVICE_NAME
環境変数を設定します。