.NET のスタックトレースの設定

デフォルトでは、.NET Tracer は、すべてのスパンについてスタックトレースをキャプチャし、スタックトレースのデフォルトの深さは 35 フレームです。 スタックトレースの設定を使用することで、 Instana によって収集・取り込まれるトレースデータの量を制御できます。 スタックトレースの設定を使用して、.NET Tracer をカスタマイズし、エラーが発生したスパンについてのみスタックトレースを収集したり、スタックトレースの収集を完全に無効にしたり、スタックトレースの深さを制御したりすることができます。

構成方式

.NET のTracerでは、スタックトレースの設定に関して以下のメソッドがサポートされています:

オプション 1:環境変数を用いたスタックトレースの設定

環境 INSTANA_STACK_TRACE_LENGTH 変数 INSTANA_STACK_TRACE および を使用して、スタックトレースのレベルと長さを設定できます。

表 1. スタックトレースの環境変数
環境変数 説明 サポートされる値
INSTANA_STACK_TRACE スタックトレースのレベル all (デフォルト): すべてのスパンについてスタックトレースを収集します。 error: エラーが発生したEXITスパンのみについてスタックトレースを収集します。 ENTRYスパン(例: ASP.NET のリクエストスパン)については、通常、診断上の価値がほとんどないフレームワークレベルのフレームのみが含まれているため、スタックトレースは収集されません。 none: スタックトレースの収集を無効にします。 設定されたモードにかかわらず、 HTTP のエントランスおよびエグジットスパンでエラー(span.ec=1)が発生した場合、常にスタックトレースが報告されます。
INSTANA_STACK_TRACE_LENGTH スタックトレースの深さ 1200 (デフォルト: 35)

スタックトレースの深さが のエラーが発生したスパンについてのみスタックトレースを収集するには 10、以下の環境変数を設定してください:

INSTANA_STACK_TRACE=error
INSTANA_STACK_TRACE_LENGTH=10

オプション 2: YAML の設定ファイルによるスタックトレースの設定

構造化され、バージョン管理された設定を行うには、 YAML 設定ファイルを使用してください。

YAML の設定ファイルを使用してスタックトレースを設定するには、以下の手順を実行してください

  1. YAML の設定ファイル(例: instana-config.yaml)を作成し、セクション tracing.global の下にスタックトレースの設定を追加します。 また、以下の設定で、技術ごとのオーバーライドを設定することもできます tracing.<technology>
    tracing:
      global:
        stack-trace: error
        stack-trace-length: 12
      aspnet:
        stack-trace: all
        stack-trace-length: 20

    この節 tracing.global は、すべてのスパンに適用されます。 セクション tracing.<technology> を使用して、特定のテクノロジー(例: aspnetsqlserver)のグローバル設定を上書きします。テクノロジーごとの設定は、よりも優先されます tracing.global

  2. YAMLINSTANA_CONFIG_PATH ファイルの絶対パスを環境変数に設定してください:
    INSTANA_CONFIG_PATH=/path/to/instana-config.yaml

サポートされているフィールドおよび値の詳細については、「 スタックトレースの設定リファレンス」 を参照してください。

オプション 3: Instana エージェントの設定によるスタックトレースの設定

Instana エージェントでスタックトレースを設定するには、エージェントのファイル configuration.yaml<instana-agent>/etc/instana/configuration.yaml)内の com.instana.tracing セクションを作成または更新してください。

スタックトレースの深さが のすべてのスパンについてスタックトレースを収集するには 4、エージェント configuration.yaml ファイルに次のスニペットを追加してください:

com.instana.tracing:
  global:
    stack-trace: all
    stack-trace-length: 4
注:
YAML の設定ファイル(オプション 2)を使用する場合は、`key` キー tracing (必須)を使用してください。 このキー com.instana.tracing は下位互換性のために受け入れられますが、非推奨の警告が表示されます。
注:
.NET Tracer は、起動時にエージェントから設定を自動的に取得し、定期的に更新の有無を確認します。 その後の設定変更は、.NET アプリケーションを再起動することなく反映されます。

サポートされているフィールドおよび値の詳細については、「 スタックトレースの設定リファレンス」 を参照してください。

スタックトレースの設定リファレンス

スタックトレースの設定を行うには、以下の YAML 構文を使用してください:

# Use 'tracing' key in a YAML configuration file (required)
# Use 'com.instana.tracing' key in the agent configuration.yaml file (accepted for backward compatibility)
tracing:
  global:
    stack-trace: <string>
    stack-trace-length: <int>
  <technology>:          # Optional: override global settings per technology
    stack-trace: <string>
    stack-trace-length: <int>
表 2. スタックトレースの設定フィールド
フィールド 説明 サポートされる値
stack-trace スタックトレースのレベル all (デフォルト): すべてのスパンについてスタックトレースを収集します。 error: エラーが発生したEXITスパンのみについてスタックトレースを収集します。 ENTRYスパン(例: ASP.NET のリクエストスパン)については、通常、診断上の価値がほとんどないフレームワークレベルのフレームのみが含まれているため、スタックトレースは収集されません。 none: スタックトレースの収集を無効にします。 設定されたモードにかかわらず、 HTTP のエントランスおよびエグジットスパンでエラー(span.ec=1)が発生した場合、常にスタックトレースが報告されます。
stack-trace-length スタックトレースの深さ 1200 (デフォルト: 35)。EXITスパンに誤りがある場合、トレーサーはこの制限を無視し、スタック全体をキャプチャすることがあります。
注:
このセクション tracing のキー <technology> には、.NET Tracer がサポートするあらゆる技術識別子(例: aspnetsqlserver)を指定できます。技術ごとの設定は、 よりも優先されます tracing.global

設定の優先順位

スタックトレースの設定は、以下の優先順位に従って適用されます

  1. 環境 INSTANA_CONFIG_PATH 変数を通じて渡される YAML 設定ファイルからのスタックトレース設定。
  2. 環境変数 INSTANA_STACK_TRACE および を通じて設定されたスタックトレースの設定 INSTANA_STACK_TRACE_LENGTH
  3. エージェントのファイル configuration.yaml からのスタックトレースの設定。

優先順位は、スタックトレースレベルとスタックトレースの長さの設定について、それぞれ個別に評価され、適用されます。