第243章 OpenTracing コンポーネント
Camel 2.19 から利用可能
Camel 2.21 以降では、OpenTracing Java API バージョン 0.31 以降と互換性のある OpenTracing コンplaint トレーサーを使用する必要があります。
camel-opentracing コンポーネントは、OpenTracing を使用した Camel メッセージのトレースとタイミングに使用されます。
イベント(スパン)は、Camel に送信される受信および送信メッセージに対してキャプチャーされます。
サポートされるトレーサーの一覧は、OpenTracing の Web サイトを参照してください。
243.1. 設定
OpenTracing トレーサーの設定プロパティーは次のとおりです。
オプション | デフォルト | 説明 |
---|---|---|
excludePatterns | パターンに一致する Camel メッセージのトレースを無効にする除外パターンを設定します。コンテンツは Set<String> で、キーはパターンです。このパターンは Intercept のルールを使用します。 |
Camel アプリケーションに分散トレーシングを提供するように OpenTracing トレーサーを設定する方法は 3 つあります。
243.1.1. explicit
選択した OpenTracing 準拠のトレーサーに関連する特定の依存関係と共に、camel-opentracing
コンポーネントを POM に含めます。
OpenTracing サポートを明示的に設定するには、OpenTracing トレーサー
をインスタンス化し、Camel コンテキストを初期化します。オプションで トレーサー
を指定したり、レジストリー
または ServiceLoader
を使用して暗黙的に検出することもできます。
OpenTracingTracer ottracer = new OpenTracingTracer(); // By default it uses a Noop Tracer, but you can override it with a specific OpenTracing implementation. ottracer.setTracer(...); // And then initialize the context ottracer.init(camelContext);
XML で OpenTracing トレーサーを使用するには、OpenTracing トレーサー Bean を定義するだけです。Camel は自動的に検出して使用します。
<bean id="tracer" class="..."/> <bean id="ottracer" class="org.apache.camel.opentracing.OpenTracingTracer"> <property name="tracer" ref="tracer"/> </bean>
243.1.2. Spring Boot
Spring Boot を使用している場合は、 camel-opentracing-starter
依存関係を追加し、@CamelOpenTracing
でメインクラスにアノテーションを付けて OpenTracing をオンにできます。
トレーサー
は、トレーサー
Bean がアプリケーションによって定義されていない限り、Camel コンテキストの レジストリー
または ServiceLoader
から暗黙的に取得されます。
243.1.3. Java エージェント
3 つ目のアプローチは、Java エージェントを使用して OpenTracing サポートを自動的に設定する方法です。
選択した OpenTracing 準拠のトレーサーに関連する特定の依存関係と共に、camel-opentracing
コンポーネントを POM に含めます。
OpenTracing Java エージェントは、以下の依存関係に関連付けられます。
<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-agent</artifactId> </dependency>
使用される トレーサー
は、Camel コンテキスト レジストリー
または ServiceLoader
から暗黙的に読み込まれます。
このエージェントがどのように使用されるかは、アプリケーションの実行方法によって異なります。camel-example-opentracing の Service2 はエージェントをローカルフォルダーにダウンロードし、exec-maven-plugin
を使用して -javaagent
コマンドラインオプションを指定してサービスを起動します。