OBI グローバル設定プロパティ
OBI は、環境変数またはコマンドライン引数 -config か環境変数 OTEL_EBPF_CONFIG_PATH を使用して渡す YAML 設定ファイルを通じて設定できます。
環境変数は設定ファイルのプロパティよりも優先されます。
たとえば、次のコマンドラインでは、OTEL_EBPF_LOG_LEVEL オプションが config.yaml 内の log_level 設定を上書きします。
設定引数の場合は次のとおりです。
OTEL_EBPF_LOG_LEVEL=debug obi -config /path/to/config.yaml
設定環境変数の場合は次のとおりです。
OTEL_EBPF_LOG_LEVEL=debug OTEL_EBPF_CONFIG_PATH=/path/to/config.yaml obi
設定ファイルのテンプレートについては、YAML 設定ファイルの例を参照してください。
OBI は、HTTP および gRPC アプリケーションからトレースを生成、変換、エクスポートするコンポーネントのパイプラインで構成されています。 YAML 設定では、各コンポーネントに独自のトップレベルセクションがあります。
オプションとして、OBI はネットワークレベルのメトリクスも提供します。 詳細については、ネットワークメトリクスのドキュメントを参照してください。
以下のセクションでは、OBI 設定全体に適用されるグローバル設定プロパティについて説明します。
例
trace_printer: json
shutdown_timeout: 30s
channel_buffer_len: 33
| YAML 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
(YAML なし)OTEL_EBPF_AUTO_TARGET_EXE | 実行可能ファイルのフルパスへの グロブ マッチングによって計装するプロセスを選択します。 | string | 未設定 |
(YAML なし)OTEL_EBPF_AUTO_TARGET_LANGUAGE | 検出されたプログラミング言語(グロブマッチャー)によって計装するプロセスを選択します。たとえば go、java、nodejs などです。 | string | 未設定 |
open_portOTEL_EBPF_OPEN_PORT | オープンポートによって計装するプロセスを選択します。ポートとポート範囲のカンマ区切りリストを受け付けます。 | string | 未設定 |
target_pidsOTEL_EBPF_TARGET_PID | PID によって計装するプロセスを選択します。YAML リスト、単一値、またはカンマ区切り環境変数リストを受け付けます。 | integer または integer のリスト | 未設定 |
shutdown_timeoutOTEL_EBPF_SHUTDOWN_TIMEOUT | グレースフルシャットダウンのタイムアウトを設定します。 | string | “10s” |
log_levelOTEL_EBPF_LOG_LEVEL | プロセスロガーの詳細レベルを設定します。有効な値は DEBUG、INFO、WARN、ERROR です。 | string | INFO |
log_formatOTEL_EBPF_LOG_FORMAT | ロガーの出力形式を設定します。有効な値は text、json です。 | string | text |
trace_printerOTEL_EBPF_TRACE_PRINTER | 計装されたトレースを指定された形式で標準出力に出力します。トレースプリンター形式を参照してください。 | string | disabled |
enforce_sys_capsOTEL_EBPF_ENFORCE_SYS_CAPS | 起動時にシステムケーパビリティが不足している場合の OBI の処理方法を制御します。 | boolean | false |
実行可能ファイル名のマッチング
このプロパティは、ファイルシステム上で実行可能ファイルが存在するディレクトリを含む完全な実行可能コマンドラインに対して グロブ マッチングを行います。 OBI は 1 つのプロセス、または同様の特性を持つ複数のプロセスを選択します。 より詳細なプロセスの選択とグルーピングについては、サービスディスカバリーのドキュメントを参照してください。
実行可能ファイル名で計装する場合は、対象システム上の 1 つの実行可能ファイルに一致する明確な名前を選択してください。
たとえば、OTEL_EBPF_AUTO_TARGET_EXE=*/server を設定してグロブに一致する 2 つのプロセスがある場合、OBI は両方を選択します。
かわりに、完全なアプリケーションパスを使用して完全一致を行ってください。
たとえば OTEL_EBPF_AUTO_TARGET_EXE=/opt/app/server または OTEL_EBPF_AUTO_TARGET_EXE=/server といった具合です。
OTEL_EBPF_AUTO_TARGET_EXE と OTEL_EBPF_OPEN_PORT の両方のプロパティを設定した場合、OBI は両方の選択条件に一致する実行可能ファイルのみを選択します。
言語のマッチング
OTEL_EBPF_AUTO_TARGET_LANGUAGE を使用して、検出された言語ランタイムに基づいてプロセスをターゲットにします。
以下が例です。
OTEL_EBPF_AUTO_TARGET_LANGUAGE=go
グロブ表現も使用できます。
OTEL_EBPF_AUTO_TARGET_LANGUAGE='java*'
このオプションを OTEL_EBPF_AUTO_TARGET_EXE や OTEL_EBPF_OPEN_PORT と組み合わせる場合、プロセスは設定されたすべてのセレクターを満たす必要があります。
ターゲット PID のマッチング
target_pids(YAML)または OTEL_EBPF_TARGET_PID(環境変数)を使用して、特定のプロセス ID のみを計装します。
YAML の例は次のとおり。
target_pids: [1234, 5678]
target_pids: 1234
環境変数の例は以下です。
OTEL_EBPF_TARGET_PID=1234,5678
これは、正確なプロセス ID が分かっている場合のターゲットを絞ったトラブルシューティングやコントロールされたリリースに役立ちます。
オープンポートのマッチング
このプロパティは、ポートまたはポート範囲のカンマ区切りリストを受け付けます。 実行可能ファイルがいずれかのポートを開いている場合、OBI はそれを選択します。 たとえば次のとおり。
OTEL_EBPF_OPEN_PORT=80,443,8000-8999
この例では、OBI はポート 80、443、または 8000 から 8999 の間のポートを開く実行可能ファイルを選択します。
1 つのプロセスまたは同様の特性を持つ複数のプロセスを選択できます。
より詳細なプロセスの選択とグルーピングについては、サービスディスカバリーのドキュメントの手順に従ってください。
実行可能ファイルが複数のポートを開く場合、そのポートの 1 つを指定するだけで、OBI はすべてのアプリケーションポートの HTTP/S および gRPC リクエストをすべて計装します。 現在、特定のポートのリクエストのみに計装を限定する方法はありません。
指定されたポート範囲が広い場合(例: 1-65535)、OBI はその範囲内のポートのうち 1 つでも所有しているプロセスすべてに対して実行しようとします。
OTEL_EBPF_AUTO_TARGET_EXE と OTEL_EBPF_OPEN_PORT の両方のプロパティを設定した場合、OBI は両方の選択条件に一致する実行可能ファイルのみを選択します。
トレースプリンター形式
このオプションは、計装されたトレースを以下のいずれかの形式を使用して標準出力に出力します。
disabled: プリンターを無効化text: 簡潔な 1 行テキストを出力json: コンパクトな JSON オブジェクトを出力json_indent: インデントされた JSON オブジェクトを出力
システムケーパビリティ
enforce_sys_caps を true に設定し、必要なシステムケーパビリティが不足している場合、OBI は起動を中止して不足しているケーパビリティをログに記録します。
このオプションを false に設定した場合、OBI は不足しているケーパビリティをログに記録するのみです。
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!