37.2. 設定
AWS XRay トレーサーの設定プロパティーは次のとおりです。
オプション | デフォルト | 説明 |
---|---|---|
addExcludePatterns |
| パターンに一致する Camel メッセージのトレースを無効にする除外パターンを設定します。コンテンツは Set<String> で、キーは routeId に一致するパターンです。このパターンは Intercept のルールを使用します。 |
setTracingStrategy | NoopTracingStrategy |
|
現在、Camel アプリケーションの分散トレースを提供するように AWS XRay トレーサーを設定できる方法は 1 つだけです。
37.2.1. Explicit
AWS XRay Tracer に関連付けられた特定の依存関係とともに、camel-aws-xray
コンポーネントを POM に含めます。
AWS XRay サポートを明示的に設定するには、XRayTracer
をインスタンス化し、camel コンテキストを初期化します。オプションで Tracer
を指定することも、代わりに Registry
または ServiceLoader
を使用して暗黙的に検出することもできます。
XRayTracer xrayTracer = new XRayTracer(); // By default it uses a NoopTracingStrategy, but you can override it with a specific InterceptStrategy implementation. xrayTracer.setTracingStrategy(...); // And then initialize the context xrayTracer.init(camelContext);
XML で XRayTracer を使用するには、AWS XRay トレーサー Bean を定義するだけです。Camel はそれを自動的に検出して使用します。
<bean id="tracingStrategy" class="..."/> <bean id="aws-xray-tracer" class="org.apache.camel.component.aws.xray.XRayTracer" /> <property name="tracer" ref="tracingStrategy"/> </bean>
デフォルトの NoopTracingStrategy
の場合、エクスチェンジの作成と削除のみが追跡されますが、特定の Bean または EIP パターンの呼び出しは追跡されません。
37.2.2. 包括的なルート実行の追跡
複数のルート間でのエクスチェンジの実行を追跡するために、エクスチェンジの作成時に一意のトレース ID が生成され、対応する値がまだ使用できない場合はヘッダーに格納されます。このトレース ID は、処理された交換の一貫したビューを維持するために、新しいエクスチェンジにコピーされます。
AWS XRay トレースはスレッドローカルベースで機能するため、現在のサブ/セグメントを新しいスレッドにコピーし、AWS XRay のドキュメント で説明されているように設定する必要があります。したがって、Camel AWS XRay コンポーネントは、渡された AWS XRay Entity
を新しいスレッドに設定するためにコンポーネントが使用する追加のヘッダーフィールドを提供し、実行されたどのルートとも無関係に見える新しいセグメントを公開するのではなく、ルートへの追跡データを保持します。
コンポーネントは、エクスチェンジのヘッダーにある次の定数を使用します。
ヘッダー | 説明 |
---|---|
Camel-AWS-XRay-Trace-ID |
呼び出されたルートの包括的なビューを提供する AWS XRay |
Camel-AWS-XRay-Trace-Entity |
新しいスレッドにコピーされる実際の AWS XRay |
AWS XRay Entity
(つまり、Segment
と Subsegment
) はシリアル化できないため、他の JVM プロセスに渡すべきではないことに注意してください。