Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud (OpenTelemetry) 用 .NET アプリケーションのインストルメンテーション » SignalFx Instrumentation for .NET(非推奨) » SignalFx Instrumentation for .NETの設定

注意

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の設定は、以下の方法で変更できます:

  1. 環境変数を設定します。Windowsでは、すべての.NETアプリケーションで自動インストルメンテーションをグローバルに有効にする場合を除き、プロセス・スコープに設定します。

  2. web.configまたはapp.configファイルを編集します。例:

    <configuration>
       <appSettings>
          <add key="SIGNALFX_SERVICE_NAME" value="my-service-name" />
       </appSettings>
    </configuration>
    
  3. JSON設定ファイルを生成し、SIGNALFX_TRACE_CONFIG_FILE 環境変数にファイルのパスを設定します。キーと値のペアとして設定を定義できます:

    {
       "SIGNALFX_SERVICE_NAME": "my-service-name"
    }
    

注釈

環境変数を使用して定義された設定は、XMLおよびJSON設定ファイルの設定を上書きします。

一般設定 🔗

以下の設定は、ほとんどのインストルメンテーションシナリオで共通です:

設定

説明

SIGNALFX_ENV

すべてのスパンに追加される deployment.environment タグの値。

SIGNALFX_SERVICE_NAME

アプリケーションまたはサービスの名前。設定されていない場合、インストルメンテーションは適切なデフォルト名を探します。デフォルトのサービス名の変更 を参照してください。

SIGNALFX_VERSION

アプリケーションのバージョン。設定すると、すべてのスパンに version タグが追加されます。

SIGNALFX_PROFILER_PROCESSES

プロファイラがインストルメンテーションできる実行ファイル名。セミコロンで区切られた複数の値をサポートします。例: MyApp.exe;dotnet.exe

SIGNALFX_PROFILER_EXCLUDE_PROCESSES

プロファイラがインストルメンテーションできない実行ファイル名。セミコロンで区切られた複数の値をサポートします。例: ReservedProcess.exe;powershell.exe

SIGNALFX_TRACE_CONFIG_FILE

JSON設定ファイルのパス。JSONファイルを使用してインストルメンテーションを設定する場合は、この環境変数を設定します。詳細は 設定方法 を参照してください。

SIGNALFX_TRACE_ENABLED

トレーサーを非アクティブにするには、false に設定します。デフォルト値は true です。

SIGNALFX_AZURE_APP_SERVICES

true に設定すると、プロファイラが Azure App Services のコンテキストで実行されていることを示します。デフォルト値は false です。

SIGNALFX_DOTNET_TRACER_HOME

インストールされたインストルメンテーションの場所。Linux 上のアプリケーションまたは Azure App Service のバックグラウンド サービスでインストルメンテーションを行う場合は、/opt/signalfx に手動で設定する必要があります。デフォルトでは、Windows インストーラは自動的に C:\Program Files\SignalFx\.NET Tracing ディレクトリを使用します。

エクスポート設定 🔗

以下の設定は、トレースエクスポーターとそのエンドポイントをコントロールします:

設定

説明

SIGNALFX_ACCESS_TOKEN

お客様の組織の Splunk Observability Cloud アクセストークン。このトークンを使用すると、Splunk Observability Cloud インジェスト・エンドポイントに直接トレースを送信できるようになります。アクセストークンを取得するには、Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。

SIGNALFX_REALM

組織のレルムの名前。例えば、us0 です。レルムを設定すると、メトリクスは https://ingest.<realm>.signalfx.com/v2/datapoint に送信され、トレースは https://ingest.<realm>.signalfx.com/v2/trace に送信されます。

SIGNALFX_ENDPOINT_URL

トレースエクスポーターがトレースを送信する URL。デフォルト値は http://localhost:9411/api/v2/spans です。値を設定すると、SIGNALFX_REALM 環境変数を上書きします。

SIGNALFX_METRICS_ENDPOINT_URL

メトリクス・エクスポーターがメトリクスを送信する URL。デフォルト値は http://localhost:9943/v2/datapoint です。値を設定すると、SIGNALFX_REALM 環境変数がオーバーライドされます。

SIGNALFX_TRACE_PARTIAL_FLUSH_ENABLED

SIGNALFX_TRACE_PARTIAL_FLUSH_MIN_SPANS で定義されているように、最小数のクローズドスパンを含むトレースをエクスポートするために有効にします。デフォルト値は false です。

SIGNALFX_TRACE_PARTIAL_FLUSH_MIN_SPANS

トレースがエクスポートされる前の、トレース内のクローズドスパンの最小数。デフォルト値は 500 です。環境変数 SIGNALFX_TRACE_PARTIAL_FLUSH_ENABLED の値が true である必要があります。

トレース伝播の設定 🔗

以下の設定はトレース伝搬をコントロールします:

設定

説明

SIGNALFX_PROPAGATORS

トレーサーのプロパゲータのカンマ区切りリスト。利用可能なプロパゲータは B3W3C で、OpenTelemetry SDK の b3multitracecontext のプロパゲータに対応しています。デフォルト値は B3,W3C です。

AlwaysOn Profilingの .NET 設定 🔗

以下の設定は、.NET インストルメンテーションの AlwaysOn Profiling 機能を制御します:

環境変数

説明

SIGNALFX_PROFILER_ENABLED

AlwaysOn Profilingを有効にします。デフォルト値は false です。

SIGNALFX_PROFILER_MEMORY_ENABLED

メモリプロファイリングを有効にします。デフォルト値は false です。

SIGNALFX_PROFILER_LOGS_ENDPOINT

プロファイラログのコレクタエンドポイント。デフォルト値は http://localhost:4318/v1/logs です。

SIGNALFX_PROFILER_CALL_STACK_INTERVAL

コールスタックをサンプリングする頻度をミリ秒単位で指定します。デフォルト値は 10000 ミリ秒です。

注釈

AlwaysOn Profilingの詳細については、Splunk APMのAlwaysOn Profilingの概要 を参照してください。

メトリクス設定 🔗

以下の設定がメトリクスの収集を制御します:

設定

説明

SIGNALFX_METRICS_{0}_ENABLED

特定のメトリクス・グループをアクティブまたは非アクティブにするための構成パターン。例えば、NetRuntime メトリクスをアクティブにするには、SIGNALFX_METRICS_NetRuntime_ENABLED=true を設定します。サポートされているメトリクスは、NetRuntimeProcessAspNetCoreTraces です。デフォルト値は false です。詳細は、SignalFx Instrumentation for .NETによって収集されたメトリクス を参照してください。

注釈

メモリ・プロファイリングが有効になっている場合、NetRuntime メトリクスは常に収集されます。

インストルメンテーション設定 🔗

以下の設定は、インストルメンテーションとトレースの動作を制御します:

設定

説明

SIGNALFX_GLOBAL_TAGS

グローバル・スパン・タグを指定するキーと値のペアのカンマ区切りリスト。例: key1:val1,key2:val2

SIGNALFX_RECORDED_VALUE_MAX_LENGTH

属性値の最大長。この値より長い値は切り捨てられます。0 に設定された値は完全に破棄され、負の値に設定された値は無視されます。デフォルト値は 12000 です。

SIGNALFX_DISABLED_INTEGRATIONS

停止させたいライブラリ・インストルメンテーションのカンマ区切りリスト。各値は内部インストルメンテーションIDと一致しなければなりません。インテグレーション識別子のリストについては、対応ライブラリ を参照してください。

SIGNALFX_TRACE_{0}_ENABLED

特定のインストルメンテーション・ライブラリをアクティブまたは非アクティブにします。たとえば、Kafka インストルメンテーションを非アクティブにするには、SIGNALFX_TRACE_Kafka_ENABLEDfalse に設定します。この値は、内部インストルメンテーション ID と一致する必要があります。インテグレーション ID の一覧は 対応ライブラリ を参照してください。

ライブラリ固有のインストルメンテーション設定 🔗

以下の設定は、特定のインストルメンテーションの動作を制御します:

設定

説明

SIGNALFX_HTTP_CLIENT_ERROR_STATUSES

スパンがエラーとして設定されるHTTPクライアントのレスポンス・ステータスまたは範囲のカンマ区切りリスト、例: 300, 400-499 。デフォルト値は 400-599 です。

SIGNALFX_HTTP_SERVER_ERROR_STATUSES

300, 400-599 カンマ区切りの HTTP サーバー・レスポンス・ステータス、またはスパンをエラーとして設定する範囲のリス ト。デフォルト値は 500-599 です。

SIGNALFX_INSTRUMENTATION_ELASTICSEARCH_TAG_QUERIES

db.statement として PostData コマンドのタグ付けを有効にします。ダイレクト・ストリーミング・ユーザーにとってはオーバーヘッドになる可能性があります。デフォルト値は true です。

SIGNALFX_INSTRUMENTATION_MONGODB_TAG_COMMANDS

BsonDocument コマンドを db.statement としてタグ付けします。デフォルト値は true です。

SIGNALFX_INSTRUMENTATION_REDIS_TAG_COMMANDS

Redisコマンドのタグ付けを db.statement 。デフォルト値は true です。

SIGNALFX_TRACE_DELAY_WCF_INSTRUMENTATION_ENABLED

更新されたWCFインストルメンテーションを有効にし、WCFサーバーの例外処理が確立されるWCFパイプラインの後半まで実行を遅らせます。デフォルト値は false です。

SIGNALFX_TRACE_HEADER_TAGS

HTTPヘッダーのキーとタグ名をカンマ区切りでマップしたもので、トレースにタグとして自動的に適用されます。例: x-my-header:my-tag,header2:tag2

SIGNALFX_TRACE_HTTP_CLIENT_EXCLUDED_URL_SUBSTRINGS

URL部分文字列のカンマ区切りリスト。一致するURLはトレーサーによって無視されます。例えば、subdomain,xyz,login,download です。

SIGNALFX_TRACE_KAFKA_CREATE_CONSUMER_SCOPE_ENABLED

メソッド開始時にコンシューマ・スコープを閉じ、メソッド終了時に新しいコンシューマ・スコープを開始します。デフォルト値は true です。

SIGNALFX_TRACE_ROUTE_TEMPLATE_RESOURCE_NAMES_ENABLED

該当する場合、ASP.NET のスパン名とリソース名をルーティング構成に基づくように有効にします。デフォルト値は true です。

サーバートレース情報 🔗

モバイルおよびウェブアプリケーションからのリアルユーザーモニタリング(RUM)リクエストとサーバートレース・データを接続するために、トレース・レスポンス・ヘッダーがデフォルトで有効になっています。インストルメンテーションは、HTTP レスポンスに以下のレスポンス・ヘッダーを追加します:

Access-Control-Expose-Headers: Server-Timing
Server-Timing: traceparent;desc="00-<serverTraceId>-<serverSpanId>-01"

Server-Timing ヘッダーには、traceIdspanId パラメーターが traceparent 形式で含まれています。W3C tracecontextとW3C baggage context propagationはデフォルトで有効になっています。詳細については、W3CウェブサイトのServer-Timingとtraceparentのドキュメントを参照してください。

注釈

トレース・レスポンス・ヘッダーを無効にする必要がある場合は、SIGNALFX_TRACE_RESPONSE_HEADER_ENABLEDfalse に設定します。

クエリー文字列の設定 🔗

注釈

この機能は、ASP.NET Coreアプリケーションのインストルメンテーションでのみ使用できます。

以下の設定は、ASP.NET Core のインストルメンテーションされたアプリケーションの http.url タグにクエリー文字列を含めることを制御します。

設定

説明

SIGNALFX_HTTP_SERVER_TAG_QUERY_STRING

ASP.NET Core アプリケーションの http.url タグにクエリ文字列を含めるかどうかを設定します。デフォルト値は true です。

SIGNALFX_TRACE_OBFUSCATION_QUERY_STRING_REGEXP

クエリ文字列を難読化するためのカスタム正規表現。デフォルト値を例に示します。

SIGNALFX_TRACE_OBFUSCATION_QUERY_STRING_REGEXP_TIMEOUT

SIGNALFX_TRACE_OBFUSCATION_QUERY_STRING_REGEXP で定義されているクエリ文字列難読化パターン実行までのタイムアウトをミリ秒単位で指定します。デフォルト値は 200 です。

クエリー文字列を難読化することで、アプリケーションが機密データを 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の内部ロギングを制御します:

設定

説明

SIGNALFX_DIAGNOSTIC_SOURCE_ENABLED

System.Diagnostics.DiagnosticSource クラスを使用してトラブルシューティングログを生成する場合に有効にします。デフォルト値は true です。

SIGNALFX_FILE_LOG_ENABLED

ファイルログを有効にします。デフォルト値は true です。

SIGNALFX_MAX_LOGFILE_SIZE

トレーサー・ログ・ファイルの最大サイズをバイト単位で指定します。デフォルト値は 245760 で、10メガバイトです。

SIGNALFX_STDOUT_LOG_ENABLED

stdout のロギングを有効にします。デフォルト値は false です。

SIGNALFX_STDOUT_LOG_TEMPLATE

Serilog フォーマット規則を使用して stdout ログテンプレートを設定します。デフォルト値は [{Level:u3}] {Message:lj} {NewLine}{Exception}{NewLine} です。

SIGNALFX_TRACE_DEBUG

トレーサーのデバッグモードを有効にします。デフォルト値は false です。

SIGNALFX_TRACE_LOG_DIRECTORY

.NET トレーサーログのディレクトリ。存在する場合は、SIGNALFX_TRACE_LOG_PATH の値を上書きします。デフォルト値は、Linuxの場合は /var/log/signalfx/dotnet/ 、Windowsの場合は %ProgramData%\SignalFx .NET Tracing\logs\ です。

SIGNALFX_TRACE_LOGGING_RATE

トレーサーログファイルの同一ログメッセージ間の秒数。この環境変数を 0 に設定すると、レート制限が無効になります。デフォルト値は 60 です。

SIGNALFX_TRACE_STARTUP_LOGS

起動時に診断ログを有効にします。デフォルト値は true です。

デフォルトのサービス名の変更 🔗

デフォルトでは、SignalFx Instrumentation for .NETは、以下のステップを成功するまで試してサービス名を取得します:

  1. SignalFx .NET Tracing Azure Site Extensionの場合、デフォルトのサービス名は、WEBSITE_SITE_NAME 環境変数で定義されたサイト名です。

  2. ASP.NETアプリケーションの場合、デフォルトのサービス名は SiteName[/VirtualPath] です。

  3. その他のアプリケーションの場合、デフォルトのサービス名はエントリー・アセンブリの名前になります。たとえば、.NETプロジェクトファイルの名前です。

  4. エントリー・アセンブリが利用できない場合、インストルメンテーションは現在のプロセス名を使用しようとします。アセンブリを使用して直接起動する場合、プロセス名は dotnet になります。例えば、dotnet InstrumentedApp.dll です。

すべての手順が失敗した場合、サービス名のデフォルトは UnknownService になります。

デフォルトのサービス名を上書きするには、SIGNALFX_SERVICE_NAME 環境変数を設定します。

このページは 2025年02月21日 に最終更新されました。