モジュール 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」になります。