Managed Service for OpenTelemetry では、tracecontext、baggage、b3、b3multi、jaeger など、さまざまな形式でトレースデータを受け渡すことができます。HTTP リクエストヘッダーの形式は、受け渡されるトレースデータの形式によって異なります。このトピックでは、Managed Service for OpenTelemetry でトレースデータを受け渡す形式を指定する方法について説明します。
Managed Service for OpenTelemetry でサポートされている形式
デフォルトでは、Managed Service for OpenTelemetry は tracecontext と baggage を使用してトレースデータを受け渡します。
形式 | HTTP リクエストヘッダー形式 | 参照 |
tracecontext | traceparent : {version}-{trace-id}-{parent-id}-{trace-flags} | |
baggage | - | |
b3 | b3: {TraceId}-{SpanId}-{SamplingState}-{ParentSpanId} | |
b3multi | X-B3-TraceId: {TraceId} X-B3-SpanId: {SpanId} X-B3-ParentSpanId: {ParentSpanId} X-B3-Sampled: {SamplingState} | |
jaeger | uber-trace-id : {trace-id}:{span-id}:{parent-span-id}:{flags} | |
xray | - | - |
ottrace | - | - |
none | - | - |
形式の指定
アプリケーションを起動するときに、次のいずれかの方法を使用して、トレース ID を渡す形式を指定できます。
次のコマンドを実行して、otel.propagation パラメーターを指定します:
-Dotel.propagators=tracecontext,baggage複数の形式を指定し、コンマ (,) で区切ることができます。サンプルコード:
-javaagent:/path/to/opentelemetry-javaagent.jar -Dotel.resource.attributes=service.name=<service-name> -Dotel.exporter.otlp.headers=Authentication=<token> -Dotel.exporter.otlp.endpoint=<endpoint> -Dotel.metrics.exporter=none -Dotel.propagators=tracecontext,baggage,b3
OTEL_PROPAGATORS 環境変数を指定して、アプリケーションを実行します。
複数の形式を指定し、コンマ (,) で区切ることができます。サンプルコード:
export OTEL_PROPAGATORS="b3"