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

注意

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

  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 環境変数を設定します。

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