Node.js コレクターの設定

ほとんどの使用例では、Instana Node.js コレクターを require('@instana/collector')(); で初期化し、デフォルトの設定オプションをそのままにしておく必要があります。 デフォルト・コンフィギュレーションの変更で説明したように、デフォルト・コンフィギュレーションを変更することができます。

デフォルト設定の変更

Instana Node.js コレクターの初期化時に設定オブジェクトを渡すことができます:

require('@instana/collector')({
  // configuration options, see as follows
});
 

さらに、環境変数を使用して Node.js コレクターを構成することもできます。

エージェントの通信

エージェントホストとポートを変更するようにコレクタを設定できます。

エージェント・ホスト

コレクターは IP 127.0.0.1 を使用して、ホストのデフォルト・ゲートウェイを介したフォールバックとして Instana エージェントと通信しようとします。 これらの IP のいずれでもエージェントを使用できない場合は、agentHost オプションを使用してカスタム IP を使用することができます。

require('@instana/collector')({
  agentHost: '::1' // use IPv6 to contact via localhost
});
 

あるいは、環境変数を利用します。

require('@instana/collector')({
  agentHost: process.env.HOST_IP
});
 

構成されていない場合、Instana コレクターは INSTANA_AGENT_HOST という名前の環境変数を検索し、この環境変数で定義されている内容を使用してエージェントと通信します。 この環境変数がない場合は、まず localhost でエージェントとの接続を試行し、次にデフォルト・ゲートウェイで接続を試行します。

エージェント・ポート

コレクターはポート 42699 を介して Instana エージェントとの通信を試行します。 ポートが変更されている場合は、agentPortオプションを使用してポートを変更できます。

require('@instana/collector')({
  agentPort: 42699
});
 

構成されていない場合、Instana コレクターは INSTANA_AGENT_PORT という名前の環境変数を検索し、この環境変数で定義されている内容を使用してエージェントと通信します。 この環境変数がない場合は、デフォルト・ポート 42699 にフォールバックします。

Node.js EOLイベントを無効にする

Instana エージェントを使用する非サーバーレス環境では、実行中の Node.js バージョンが寿命 (EOL) に達したことを検出すると、 Node.js Tracer が発行イベントをトリガーします。

これらのEOLイベントを抑制するには、以下の環境変数を使って無効にすることができる:

INSTANA_TRACING_DISABLE_EOL_EVENTS=true
 

EOL Node.js バージョンの完全なリストについては、公式 Node.js リリースページを参照のこと。

トレース

トレースは、リクエストが様々なサービスやコンポーネントを通過する際の詳細な情報を取得することで、アプリケーションにエンドツーエンドの可視性を提供します。

トレースはデフォルトで有効になっている。 トレースを完全に、または選択的に無効にするには、コンフィギュレーションオプションのトレースの無効化のセクションを参照してください。

エントリー・スパンなしでルートのエグジット・スパンを許可する

注: この機能は、Instana コレクタ 4.0 以降で使用できます。

デフォルトでは、Instana Node.js Tracer は、アクティブなエントリスパンを持つ出口スパンのみをキャプチャします。 この機能を有効にすると、トレーサーがスタンドアロンの出口スパンをトレースできるようになります。

この機能を有効にするには、以下のいずれかのオプションを使用する:

  • 環境変数 INSTANA_ALLOW_ROOT_EXIT_SPAN 環境変数を設定する。

  • トレーサー初期化機能で機能を設定する:

    require('@instana/collector')({
    tracing: {
      allowRootExitSpan: true
    }
    });
     

もし INSTANA_ALLOW_ROOT_EXIT_SPAN 1 または true に設定されている場合、または allowRootExitSpantrue に設定されている場合、アクティブなエントリースパンがない場合でも、トレーサーはエグジットスパンを捕捉する。

この機能は、Instana の自動インストルメンテーションではサポートされていないメカニズムによってタスクがトリガーされる、以下のシナリオで役立ちます:

  • サポートされていないメッセージング・ライブラリからの着信メッセージ
  • 生の Transmission Control Protocol (TCP)や WebSocket
  • setTimeoutsetInterval、またはサポートされていない Node.js スケジューリング・ライブラリなどのメカニズムを使用して、アプリケーションによって内部的に開始されるスケジュールされたジョブ

エンドポイントの無視

Node.js Tracer 4.9.0 からは、特定のトレースやコールを除外することで、不要なデータの取り込みを減らすことができます。 このフィルタリングの仕組みにより、トレース・コレクションを絞り込むことができる。 トレースを除外するには、 Node.js Tracerのコンフィギュレーション設定でこれらのパラメータを定義します:

  • 技術:例えば、 KafkaRedisDynamoDBHTTP のように、関連する技術を指定する。
  • 方法:除外する方法を特定する。 例えば、以下の技術については、これらの方法を除外する:
    • Kafka: send, consume
    • Redis: get, type
    • DynamoDB: query, scan
    • HTTP: get, post
  • エンドポイント(該当する場合):特定のエンドポイントに基づいてフィルタリングをさらに絞り込む。 例えば、以下の技術のエンドポイントは次のように定義されている:
    • Kafka:エンドポイントはトピック名。
    • HTTP:終点は URL パス。
  • 接続(オプション):特定の接続のトレースを除外します。 例えば、以下の技術の接続は次のように定義される:
    • Redis:connectionは接続文字列。
    • HTTP:接続にはホストとポートが含まれます。
制約事項:

無視するエンドポイント機能には以下の制限があります:

  • この機能は現在、 DynamoDB,Kafka、、 および Redis で利用可能です HTTP。 ただし、メソッドとエンドポイントの両方によるフィルタリングをサポートしているのは HTTP と Kafka のみです。
  • ライブラリ Kafka.js はメソッド sendBatch をサポートしており、これにより複数のトピックに同時にメッセージを送信できます。 メソッドとエンドポイントの両方を使用してトレースをフィルタリングする場合は、コンフィギュレーションで関連するすべてのエンドポイント(トピック)を指定します。 トピックが省略されても、トレースは無視されない。
  • 接続フィルタリングは現在、および HTTPRedis でのみサポートされています。
  • エントリ HTTP コールのフィルタリングは現在サポートされています。

ルールのフィルタリング

トレースのフィルタリングのルールは以下の通り:

  • トレースが無視されると、それ以降のダウンストリームトレースもすべて無視される。
  • すべてのエンドポイント、メソッド、接続を無視するには、 * を使用します。
  • エンドポイントの値(トピック名 Kafka など)は、サービス間で一貫性を保ちます。
  • メソッド名はプログラミング言語や技術によって異なる場合がある。 Instana UI を参照して、サービスの正しいメソッドとエンドポイントを決定します。

次の Instana UI のスクリーンショットは、設定のための正しいメソッドとエンドポイントを識別するための視覚的なリファレンスを提供します:

UIのメソッドとエンドポイント

構成オプション

以下のオプションのいずれかを使用して、エンドポイント除外を有効にすることができます:

  • 環境変数
  • コード内コンフィギュレーション
  • エージェントの構成
環境変数

無視されるエンドポイントを設定するには、以下の環境変数を使用して、サービスごとにエンドポイントをフィルタリングします:

  • instana_ignore_endpoints_path
  • instana_ignore_endpoints
instana_ignore_endpoints_path

この環境変数を使うと、次の例に示すように、外部のYAMLファイルを使ってフィルタリングを設定することができる:

INSTANA_IGNORE_ENDPOINTS_PATH=/absolute/path/to/config.yaml
 

前述の例では、 config.yaml ファイルは絶対パスを持ち、指定されたコンフィギュレーション構造に従わなければならない。

次の例は、メソッドによるフィルタリングを示している:

tracing:
  ignore-endpoints:
    redis:
      - get
      - type
    dynamodb:
      - query
    kafka:
      - send 
    http:
      - get
 

このコンフィギュレーションは以下のトレースをフィルターする:

  • GET および TYPE のコマンド Redis
  • QUERY のコマンドを使用する。 DynamoDB
  • SEND Kafka およびすべての下流トレースのメソッド
  • GET HTTP およびすべての下流トレースのメソッド

次の例は、メソッド、エンドポイント、接続によるフィルタリングを示している:

tracing:
  ignore-endpoints:
    kafka: 
      - methods: ["consume"]
        endpoints: ["topic1", "topic2"]

      - methods: ["consume", "send"]
        endpoints: ["topic3"]

      - methods: ["*"] # Applied to all methods
        endpoints: ["topic4"]

      - methods: ["consume"]
        endpoints: ["*"] # Applied to all endpoints

    http:
      - methods: ["get"]
        endpoints: ["/status"]

      - methods: ["get", "post"]
        endpoints: ["/status", "/v1/status"]

      - methods: ["*"]
        connection: ["localhost:3000"]

    redis:
      - methods: ['get']
        connections: ['192.168.0.1:9191']
 

このコンフィギュレーションは以下のトレースをフィルターする:

  • CONSUME Kafka およびすべての下流トレースにおける および のメソッド topic1 topic2
  • CONSUME および SEND のメソッドは、 Kafkatopic3 およびすべての下流のトレースで使用される
  • Kafkatopic4 のすべての (*) メソッドとすべての下流のトレース
  • CONSUME メソッドは、 Kafka のすべての (*) トピックとすべての下流トレースに対して実行される
  • GET メソッドを、 HTTP の URL /status およびすべての下流のトレースに適用する
  • GET および POST メソッドから HTTP のURL /status および /v1/status 、そしてすべての下流のトレースへ
  • localhost:3000 およびすべてのダウンストリームトレースの接続のためのすべての (*) メソッド
  • GET 接続に関するメソッド 192.168.0.1:9191 Redis

両方のフィルタリングオプション(メソッドのみ、メソッドとエンドポイント)を同じ設定ファイルで組み合わせることができる。

この構成はエージェント configuration.yaml 構造と互換性があります。

instana_ignore_endpoints

この環境変数を使うと、メソッド名だけに基づいてトレースを除外することができる。

INSTANA_IGNORE_ENDPOINTS=redis:get,type
 

このコンフィギュレーションは、 redis パッケージの GETTYPE コマンドをトレースから除外する。

複数のパッケージの除外を設定するには、以下の例に示すように設定する。

INSTANA_IGNORE_ENDPOINTS=redis:get,type;dynamodb:query,scan;kafka:send;http:get
 

このコンフィギュレーションは以下のトレースをフィルターする:

  • GET および TYPE のコマンドを使用する。 Redis
  • QUERY および SCAN のコマンドを使用する。 DynamoDB
  • SEND メソッド Kafka
  • GET メソッド HTTP
コード内コンフィギュレーション

無視するエンドポイントを設定するには、コード内の設定を使用して、サービスごとにエンドポイントをフィルタリングします。

次の例は、メソッドによるフィルタリングを示している:

require('@instana/collector')({
  tracing: {
    ignoreEndpoints: {
      redis: ['get', 'type'],
      dynamodb: ['query', 'scan'],
      kafka: ['send'],
      http: ['get']
    }
  }
});
 

このコンフィギュレーションは以下のトレースをフィルターする:

  • GET および TYPE のコマンドを使用する。 Redis
  • QUERY および SCAN のコマンドを使用する。 DynamoDB
  • SEND メソッド( Kafka )およびすべての下流トレース
  • GET メソッド( HTTP )およびすべての下流トレース

次の例は、メソッドとエンドポイントによるフィルタリングを示している:

require('@instana/collector')({
  tracing: {
    ignoreEndpoints: {
      kafka: [
        { methods: ['consume'], endpoints: ['topic1', 'topic2'] },
        { methods: ['send'], endpoints: ['topic3'] }
      ],
      http: [
        {
          methods: ['get'], endpoints: ['/status']
        }
      ]
    }
  }
});
 

このコンフィギュレーションは以下のトレースをフィルターする:

  • CONSUME Kafka およびすべての下流トレースにおける および のメソッド topic1 topic2
  • SEND Kafka およびすべての下流トレースにおける のメソッド topic3
  • GET メソッドを、 HTTP の URL /status およびすべての下流のトレースに適用する

同じコンフィギュレーションで、両方のフィルタリングオプション(メソッドのみ、メソッドとエンドポイント)を使うことができる。

トレースの無効化

注: これらの手順は、 Node.js Tracer 4.17.0 以降に適用されます。

トレースを無効にするには、完全にオフにするか、特定のインストルメンテーション、またはデータベース、メッセージング、ロギングなどのグループ全体を選択的に除外します。 この柔軟性により、アプリケーションのニーズに基づいてトレースを微調整することができます。

トレースを無効にする設定を適用するには、以下のいずれかの方法を使用します:

  • 環境変数
  • コード内コンフィギュレーション
  • エージェント設定 (YAML)

すべてのトレースを無効にする

トレースを完全に無効にすると、Instana トレーサがスパンを収集したり報告したりできなくなります。 この方法は、デバッグやテスト、あるいはトレースが一時的に不要な場合などのシナリオに有効である。

トレースが無効の場合、自動インストルメンテーションもトレースSDKもアクティブになりません。 SDKコールはすべて、エラーやスパンを発生させることなく、静かに無視される。

すべてのトレースを無効にするには、以下のいずれかの方法を使用します:

  • 環境変数:環境変数を INSTANA_TRACING_DISABLE true に設定する。

    INSTANA_TRACING_DISABLE=true
     
  • コード内設定:トレーサー初期化時に以下のオプションを渡す:

    require('@instana/collector')({
    tracing: {
      disable: true
    }
    });
     

特定のインストゥルメントを無効にする

特定のインストゥルメンテーションやパッケージのトレースを無効にするには、以下のオプションを使用します。 適切な名前を見つけるには、 サポートされているライブラリセクションに記載されている値を Instrumentation identifier 参照してください。

特定のインストゥルメントを無効にするには、以下のいずれかの方法を使用する:

  • 環境変数:環境変数 INSTANA_TRACING_DISABLE_INSTRUMENTATIONS 環境変数を次の例のように設定する:

    INSTANA_TRACING_DISABLE_INSTRUMENTATIONS=redis,graphql
     

    この例では、この設定で redisgraphql 、トレースが無効になっている。 この2つの装置については、スパンの収集も報告もされていない。

  • コード内設定:トレーサー初期化時に以下のオプションを渡す:

    require('@instana/collector')({
    tracing: {
      disable: {
        instrumentations: ['redis', 'graphql']
      }
    }
    });
     

計装グループの無効化

グループ名を指定することで、関連する計装のカテゴリー全体を無効にすることができる。 この方法は、1つのコンフィギュレーションで、より広範なライブラリ・セットのトレースをオフにしたい場合に便利です。

グループレベルでの無効化は現在、以下のカテゴリーに限定されている:

特定の計装グループを無効にするには、以下のいずれかの方法を使用する:

  • 環境変数:環境変数 INSTANA_TRACING_DISABLE_GROUPS 環境変数を次の例のように設定する:

    INSTANA_TRACING_DISABLE_GROUPS=logging,database
     

    この例では、 logging および databases グループに属するすべてのインスツルメンテーションは、このコンフィギュレーションで無効になります。 これらのグループに属する機器については、スパンの収集も報告もされていない。

  • コード内設定:トレーサー初期化時に以下のオプションを渡す:

    require('@instana/collector')({
    tracing: {
      disable: {
        groups: ['logging', 'database']
      }
    }
    });
     

エージェント設定によるトレースの無効化

あるいは、エージェントを通して設定することで、すべてのサービスのインスツルメンテーションまたはグループをグローバルに無効にすることができます。 詳細については、「 トレースを無効にする 」のセクションを参照してください。

単一のフラットリストでトレースを無効にする

フラットリスト形式では、カンマ区切りのリストを使って、複数のインスツルメンテーションやグループを無効にすることができます。

注: この方法はサポートされているが、構造的な問題から推奨されていない。

単一のフラットリストとしてトレースを無効にするには、以下のいずれかの方法を使用します:

  • 環境変数:環境変数 INSTANA_TRACING_DISABLE を設定する:

    INSTANA_TRACING_DISABLE=redis,graphql,logging,database
     

    この例では、個々のインストルメンテーション(redisgraphql )とグループ全体(loggingdatabase )の両方でトレースが無効になっています。 指定されたエントリーのいずれについても、スパンは収集されない。

  • コード内設定:トレーサー初期化時に以下のオプションを渡す:

    require('@instana/collector')({
    tracing: {
      disable: ['redis', 'graphql', 'logging', 'database']
    }
    });
     

自動トレースの無効化

自動トレースもデフォルトで有効になっています。 自動トレースのみを無効にする (SDK またはopenTracing による手動トレースは有効にしておく) には、次のオプションを初期化関数に渡します。

require('@instana/collector')({
  tracing: {
    automaticTracingEnabled: false
  }
});
 

最後に、環境変数 INSTANA_DISABLE_AUTO_INSTR=true を設定することでも自動トレースを無効にすることができます。

自動トレースが無効化されていても、SDK または OpenTracing API を使用してスパンを手動で作成することはできます。

OpenTelemetry の統合を無効にする

Opentelemetryの統合はデフォルトで有効になっている。 統合を無効にするには、初期化関数に以下のオプションを渡す:

require('@instana/collector')({
  tracing: {
    useOpentelemetry: false
  }
});
 

さらに、 INSTANA_DISABLE_USE_OPENTELEMETRY 変数を true に設定することで、 OpenTelemetry の統合を無効にすることができる。 詳細については、 Instana環境変数を参照してください。

ワーカースレッドのトレースを無効にする

Instana Node.js コレクターがワーカースレッドをトレースしないようにするには、次の環境変数を設定します:

INSTANA_DISABLE_WORKER_THREADS=true

この設定により、すべてのワーカースレッドのトレースが無効になりますが、メインプロセスは自動的にトレースされます。 ワーカースレッドがトレースから除外したい内部タスクやバックグラウンドタスクを実行する場合、この設定を使用します。

スタック・トレースのキャプチャー

デフォルトでは、コレクターはキャプチャーされたエグジット・スパンごとに最新の 10 件の呼び出しサイトをキャプチャーします。 この値は必要に応じて増減できます (HTTP エントリー・スパンのスタック・トレースは収集されないことに注意してください。このトレースは Node.js コア・コードのみが表示されます)。 スタック・トレースのキャプチャーを無効にするには、値 0 を使用します。

require('@instana/collector')({
  tracing: {
    stackTraceLength: 10
  }
});
 

また、環境変数 INSTANA_STACK_TRACE_LENGTH を設定することによっても、スタック・トレースの長さを構成できます。

カスタム package.json パスの設定

Instana コレクターは、アプリケーション名などの重要な情報を抽出するために、プロジェクト内のプライマリ package.json ファイルの検索を試みます。 package.json ファイルのカスタムパスを定義する必要がある場合、またはコレ クタがファイルを見つけられない場合は、 packageJsonPath という設定オプショ ンを使用できます。

require('@instana/collector')({
  packageJsonPath: 'absolute/path/to/package.json'
});
 

環境変数 INSTANA_PACKAGE_JSON_PATH を設定することで、 package.json ファイルのパスを設定することもできる。

サービスの命名

サービスは、Instana の中心となる概念です。 呼び出し、スパン、およびトレースはサービスに密接に関連しています。 デフォルトの場合、Node.js コレクターはメインの package.json ファイルの name 属性と version 属性を使用します。 サービス名をカスタマイズするには、serviceName プロパティーを構成します。

require('@instana/collector')({
  serviceName: 'shop'
});
 

環境変数 INSTANA_SERVICE_NAME を設定することでも、カスタム・サービス名を構成できます。 カスタム・サービスの設定については、 サービス名をグローバルに設定するを参照してください。

Kafka トレース相関ヘッダー

コレクターのバージョン 4.x 以降、 Kafka トレース相関ヘッダーは常に string フォーマットで送信され、 binary フォーマットのサポートはなくなります。 詳しくは、 Kafka ヘッダーの移行を参照のこと。

環境変数 INSTANA_KAFKA_HEADER_FORMAT とコード内コンフィギュレーション・オプション tracing: { kafka: { headerFormat: .... }}} を参照するコンフィギュレーションをすべて削除する。

プロセス名の設定

環境変数 INSTANA_PROCESS_NAME を使用して、Node.js プロセスを表すインフラストラクチャー・エンティティーのカスタム・ラベルを設定します。

未処理の Promise 拒否の報告

Instana Node.js コレクターは、 未処理のプロミス拒否を問題として Instana に報告できます。 未処理の Promise 拒否とは、拒否されたが、拒否ハンドラーが定義されていない (Promise チェーンに .catch(...) がない) Promise です。

この機能は、デフォルトでは無効です。 これを有効化して、未処理の Promise 拒否が検出されると、重大度「警告」の問題として Instana に報告されます。

Promise が拒否されたときに進行中であった呼び出しは、未処理の拒否によるエラーとしてマークされないことに注意してください。 これには次の 2 つの理由があります。

  1. 未処理の拒否では Node.js ランタイムでエラーは発生しません。 要求の処理中に未処理の拒否が発生しても、要求は正常に処理できます。
  2. Node.jsランタイムには、特定の呼び出しのコンテキストで未処理の拒否を検出する方法はありません。 実際、未処理の拒否は、後で関連付けられている Promise のガーベッジ・コレクションが行われる時点にのみ検出されます。 この時点までに、未処理の拒否を発生させた要求はすでに終了しており、その対応はすでに行われています。

この機能を有効にするには、オプション reportUnhandledPromiseRejections を以下のように指定します。

require('@instana/collector')({
  reportUnhandledPromiseRejections: true
});
 

Node.js 12.0.0 以降、コマンドラインフラグがある。 --unhandled-rejections があり、処理されなかった約束の拒否がどのように処理されるかを制御する。 --unhandled-rejections=strict が指定されている場合、未処理の拒否の報告はサポートされません。これは、このモードでは Node.js が未処理の拒否をキャッチされていない例外に変換するためです。

ロギング

デフォルトのロギング設定を変更するには、以下のセクションを参照してください:

ログ・レベルの構成

デフォルトのログ・レベルを変更するには、以下を使用して構成できます。

require('@instana/collector')({
  level: 'debug'
});
 

環境変数 INSTANA_LOG_LEVELdebuginfowarn または error のいずれかに設定することでも、ログ・レベルを構成できます。 最後に INSTANA_DEBUG を空ではない文字列に設定すると、ログ・レベルが debug に設定されます。

デフォルトのログ・レベルは infoであることに注意してください。 予期しないインスタナ関連のデバッグログ( "name":"@instana/collector""level":20 を含むログ行)が表示される場合は、設定でログレベルをデバッグに設定しているか、 INSTANA_LOG_LEVEL=debug または INSTANA_DEBUG が設定されているかを確認してください。 あなた自身のロガーを提供する場合(以下を参照)、あなたはそのロガーのログレベルを望むように設定する責任があります。

AutoProfile

1.98.1 以降。 少なくともNode.js 6.4.0 が必要

この機能は現在、公開プレビューテスト段階にある。

AutoProfile を有効にするには、コレクタを初期化するときに autoProfile: true オプションを追加します。

require('@instana/collector')({
  autoProfile: true
});
 

また、環境変数 INSTANA_AUTO_PROFILE を次のように設定することで、 AutoProfile を有効にすることもできる。 true

短い Exit 呼び出しの自動集計

開始日: 1.108.0.

Node.js トレーサーは、非常に短く(10ミリ秒未満)、高頻度のデータベース呼び出しの 自動集計をサポートする。 これにより、このような呼び出しが短時間で連続して実行されるシナリオで、トレースのパフォーマンス・オーバーヘッドを最小限に抑えることができます。 現時点ではこの機能はオプトインであり、明示的に有効にする必要があります。 今後のいずれかのリリースでデフォルトの動作になる予定です。

すぐに有効にするには、以下のいずれかの方法を使う:

  • 環境変数INSTANA_SPANBATCHING_ENABLED=trueを設定します。
  • コード内構成を使用する。
    require('@instana/collector')({
      tracing: {
        spanBatchingEnabled: true
      }
    });
     
  • エージェントの configuration.yaml に以下を追加する。
    com.instana.plugin.nodejs:
      span-batching-enabled: true
     

動作がデフォルトでオンになると、これらの構成オプションは無視されることに注意してください。

この機能の仕組みが原因で、このオプションを有効にすると、エンドポイントの抽出に影響し、一部の待ち時間が少ないデータベース・エンドポイントに対する呼び出しの数が変わる可能性があります。

ビルド済みのネイティブアドオンへのフォールバックを無効にする

ネイティブアドオンのオプション依存関係がうまくインストールされない場合、 @instana/collector パッケージは自動的に、オペレーティングシステム、 Node.js バージョン、 libc バリアントにマッチするビルド済みバイナリを使用しようとします。 INSTANA_COPY_PRECOMPILED_NATIVE_ADDONS=false を設定することで、プレビルドの使用を無効にすることができる。

構成リファレンス (全体)

すべての指定可能な構成値とそのデフォルト値を以下に示します。

{
  agentHost: '127.0.0.1',
  agentPort: 42699,
  serviceName: null,
  packageJsonPath: null,
  // the log level:
  level: 'info',
  tracing: {
    enabled: true,
    automaticTracingEnabled: true,
    // Spans are batched and sent to the agent once every second, or if ${forceTransmissionStartingAt} spans have been collected (whichever happens earlier)
    forceTransmissionStartingAt: 500,
    // If more than ${maxBufferedSpans} have been buffered and the collector has not been able to send them to the agent, it will start to drop spans to avoid causing memory issues.
    maxBufferedSpans: 1000,
    http: {
      // This is usually configured at the agent level (configuration.yaml).
      extraHttpHeadersToCapture: []
    },
    // How many stack trace frames are to be captured. Can also be 0 to disable collecting stack traces.
    stackTraceLength: 10,
    // To disable individual tracing plug-ins.
    disabledTracers: [],
     // Can also be configured at the agent level (configuration.yaml).
    spanBatchingEnabled: false
  },
  metrics: {
    timeBetweenHealthcheckCalls: 3000
  },
  // This is usually configured at the agent level (configuration.yaml).
  secrets: {
    matcherMode: 'contains-ignore-case',
    keywords: ['key', 'pass', 'secret']
  },
  autoProfile: false
}
 

以下は、Node.js コレクターでサポートされているすべての環境変数のリストです。

環境変数 同等の構成オプション
INSTANA_AGENT_HOST config.agentHost
INSTANA_AGENT_PORT config.agentPort
INSTANA_SERVICE_NAME config.serviceName
INSTANA_PACKAGE_JSON_PATH config.packageJsonPath
INSTANA_PROCESS_NAME
INSTANA_DISABLE_AUTO_INSTR=true config.tracing.automaticTracingEnabled = false
INSTANA_TRACING_DISABLE config.tracing.disable
INSTANA_STACK_TRACE_LENGTH config.tracing.stackTraceLength
INSTANA_LOG_LEVEL config.level
INSTANA_DEBUG config.level = debug
INSTANA_AUTO_PROFILE=true config.autoProfile = true
INSTANA_SPANBATCHING_ENABLED=true config.tracing.spanBatchingEnabled = true
INSTANA_TRACE_IMMEDIATELY=true config.tracing.activateImmediately = true
INSTANA_COPY_PRECOMPILED_NATIVE_ADDONS
INSTANA_ALLOW_ROOT_EXIT_SPAN config.tracing.allowRootExitSpan = true
INSTANA_IGNORE_ENDPOINTS config.tracing.ignoreEndpoints