Red Hat Training

A Red Hat training course is available for Red Hat Fuse

第244章 OpenTracing コンポーネント

Camel 2.19 以降で利用可能

重要

Camel 2.21 以降では、OpenTracing Java API バージョン 0.31 以降と互換性のある OpenTracing complaint トレーサーを使用する必要があります。

camel-opentracing コンポーネントは、OpenTracing を使用して入力および出力 Camel メッセージをトレースおよびタイミングするために使用されます。

イベント (スパン) は、Camel との間で送受信される入力および出力メッセージに対してキャプチャーされます。

サポートされているトレーサーのリストについては、OpenTracing Web サイトを参照してください。

244.1. 設定

OpenTracing トレーサの設定プロパティーは次のとおりです。

オプションデフォルト説明

excludePatterns

 

パターンに一致する Camel メッセージのトレースを無効にする除外パターンを設定します。設定内容は、キーがパターンである Set<String> です。このパターンは Intercept のルールを使用します。

Camel アプリケーションの分散トレースを提供するように OpenTracing トレーサーを設定するには、次の 3 つの方法があります。

244.1.1. Explicit

選択した OpenTracing 準拠の Tracer に関連付けられた特定の依存関係と共に、camel-opentracing コンポーネントを POM に含めます。

OpenTracing サポートを明示的に設定するには、OpenTracingTracer をインスタンス化し、camel コンテキストを初期化します。オプションで Tracer を指定することも、代わりに Registry または 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 で OpenTracingTracer を使用するには、OpenTracing トレーサー Bean を定義するだけです。Camel はそれらを自動的に検出して使用します。

  <bean id="tracer" class="..."/>
  <bean id="ottracer" class="org.apache.camel.opentracing.OpenTracingTracer">
    <property name="tracer" ref="tracer"/>
  </bean>

244.1.2. Spring Boot

Spring Boot を使用している場合は、camel-opentracing-starter 依存関係を追加し、メインクラスに @CamelOpenTracing のアノテーションを付けて OpenTracing を有効にすることができます。

Tracer Bean がアプリケーションによって定義されていない限り、Tracer は camel コンテキストの Registry または ServiceLoader から暗黙的に取得されます。

244.1.3. Java Agent

3 番目の方法は、Java エージェントを使用して OpenTracing サポートを自動的に設定することです。

選択した OpenTracing 準拠の Tracer に関連付けられた特定の依存関係と共に、camel-opentracing コンポーネントを POM に含めます。

OpenTracing Java エージェントは、次の依存関係に関連付けられています。

    <dependency>
      <groupId>io.opentracing.contrib</groupId>
      <artifactId>opentracing-agent</artifactId>
    </dependency>

使用される Tracer は、キャメルコンテキスト Registry から、または ServiceLoader を使用して暗黙的にロードされます。

このエージェントの使用方法は、アプリケーションの実行方法によって異なります。camel-example-opentracingService2 はエージェントをローカルフォルダーにダウンロードし、exec-maven-plugin を使用して -javaagent コマンドラインオプションでサービスを起動します。