注意
SignalFx Instrumentation for .NETは、2024年2月21日をもって非推奨となり、2025年2月21日にサポート終了となります。それまでは、重要なセキュリティ修正とバグ修正のみが提供されます。それ以降は、ライブラリはアーカイブされ、保守されなくなります。
新規に .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
環境変数を設定します。