モジュール ngx_otel_module
設定例 ディレクティブ otel_exporter otel_service_name otel_trace otel_trace_context otel_span_name otel_span_attr デフォルトのspan属性 埋め込み変数 |
ngx_otel_module
モジュール (1.23.4) は、OpenTelemetry 分散トレーシングをサポートします。このモジュールは、W3Cコンテキスト伝搬とOTLP/gRPCエクスポートプロトコルをサポートしています。
このモジュールのソースコードはこちらで入手できます。ダウンロードとインストール手順はこちらにあります。
このモジュールは、1.25.3以降、プリビルドされたnginx-module-otel
パッケージとしても、また当社の商用サブスクリプションの一部としてnginx-plus-module-otel
パッケージとしても利用できます。
設定例
load_module modules/ngx_otel_module.so; events { } http { otel_exporter { endpoint localhost:4317; } server { listen 127.0.0.1:8080; location / { otel_trace on; otel_trace_context inject; proxy_pass http://backend; } } }
ディレクティブ
構文 |
otel_exporter { ... } |
---|---|
デフォルト | — |
コンテキスト |
http |
OTelデータエクスポートパラメータを指定します
endpoint
- テレメトリデータを受け取るOTLP/gRPCエンドポイントのアドレス。
interval
- 2回のエクスポート間の最大間隔。デフォルトは
5
秒です。 batch_size
- ワーカーごとに1バッチで送信されるspanの最大数。デフォルトは
512
です。 batch_count
- ワーカーあたりの保留中のバッチの数。この制限を超えるspanは破棄されます。デフォルトは
4
です。
例
otel_exporter { endpoint localhost:4317; interval 5s; batch_size 512; batch_count 4; }
構文 |
otel_service_name |
---|---|
デフォルト |
otel_service_name unknown_service:nginx; |
コンテキスト |
http |
OTelリソースの「service.name
」属性を設定します。
構文 |
otel_trace |
---|---|
デフォルト |
otel_trace off; |
コンテキスト |
http 、server 、location |
OpenTelemetryトレーシングを有効または無効にします。変数を指定してディレクティブを有効にすることもできます。
split_clients "$otel_trace_id" $ratio_sampler { 10% on; * off; } server { location / { otel_trace $ratio_sampler; otel_trace_context inject; proxy_pass http://backend; } }
構文 |
otel_trace_context |
---|---|
デフォルト |
otel_trace_context ignore; |
コンテキスト |
http 、server 、location |
traceparent/tracestateヘッダーの伝搬方法を指定します
extract
- リクエストから既存のトレースコンテキストを使用します。これにより、トレースと親spanの識別子が受信リクエストから継承されます。
inject
- 新しいコンテキストをリクエストに追加し、既存のヘッダーを上書きします(存在する場合)。
propagate
- 既存のコンテキストを更新します(extractとinjectを組み合わせます)。
ignore
- コンテキストヘッダーの処理をスキップします。
構文 |
otel_span_name |
---|---|
デフォルト | — |
コンテキスト |
http 、server 、location |
OTel spanの名前を定義します。デフォルトでは、リクエストの場所の名前です。名前には変数を含めることができます。
構文 |
otel_span_attr |
---|---|
デフォルト | — |
コンテキスト |
http 、server 、location |
カスタムOTel span属性を追加します。値には変数を含めることができます。
デフォルトのspan属性
次のspan属性は自動的に追加されます
-
http.method
-
http.target
-
http.route
-
http.scheme
-
http.flavor
-
http.user_agent
-
http.request_content_length
-
http.response_content_length
-
http.status_code
-
net.host.name
-
net.host.port
-
net.sock.peer.addr
-
net.sock.peer.port
埋め込み変数
$otel_trace_id
- 現在のspanが属するトレースの識別子(例:
56552bc4daa3bf39c08362527e1dd6c4
) $otel_span_id
- 現在のspanの識別子(例:
4c0b8531ec38ca59
) $otel_parent_id
- 親spanの識別子(例:
dc94d281b0f884ea
) $otel_parent_sampled
- 親spanの「
sampled
」フラグ。「1
」または「0
」になります。