Red Hat Training

A Red Hat training course is available for Red Hat Fuse

第356章 Zipkin コンポーネント

Camel 2.18 から利用可能

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

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

注記

camel-zipkin は Camel 2.22.0 でリファクタリングされ、zipkin-scribe を使用せずにデフォルトの http トランスポートを使用する予定です。この作業により、下位互換性が失われる可能性があります。

つまり、どの Camel エンドポイントを zipkin サービス名にマップするかを設定する必要があります。

マッピングは、次を使用して設定できます。

  • route id - Camel ルート ID
  • endpoint url - Camel エンドポイント URL

どちらの種類でも、Intercept のルールを使用して、ワイルドカードと正規表現を使用して一致させることができます。

すべての Camel メッセージに一致させるには、パターンで * を使用し、それを同じサービス名に設定します。

マッピングが設定されていない場合、Camel はフォールバックし、エンドポイント URI をサービス名として使用します。 
ただし、名前に Camel エンドポイント URI の代わりに人間が読める名前を使用できるように、サービスマッピングを設定することをお勧めします。

Camel は、明示的に設定されていないスパンレポーターを自動設定し、Zipkin コレクターへのホスト名とポートが環境変数として設定されている場合

  • ZIPKIN_COLLECTOR_HTTP_SERVICE_HOST - The http hostname
  • ZIPKIN_COLLECTOR_HTTP_SERVICE_PORT - ポート番号

または

  • ZIPKIN_COLLECTOR_THRIFT_SERVICE_HOST - The Scribe (Thrift RPC) hostname
  • ZIPKIN_COLLECTOR_THRIFT_SERVICE_PORT - ポート番号

これにより、サービス設定が環境変数として提供される Linux コンテナーでプラットフォームがアプリケーションを実行できるコンテナープラットフォームで camel-zipkin を簡単に使用できます。

356.1. オプション

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

rate

1.0f

zipkin によってトレースされるイベントの数を決定するレートを設定します。レートはパーセンテージで表されます (1.0f = 100%、0.5f は 50%、0.1f は 10%)。

spanReporter

 

必須: zipkin スパンイベントを zipkin サーバーに送信するために使用するレポーター。

serviceName

 

すべての Camel イベントに一致するグローバルサービス名を使用するには

clientServiceMappings

 

Camel イベントと一致する クライアント サービスマッピングを、指定された zipkin サービス名に設定します。内容は Map<String, String> で、キーはパターン、値はサービス名です。このパターンは Intercept のルールを使用します。

serverServiceMappings

 

Camel イベントと一致する サーバー サービスマッピングを、指定された zipkin サービス名に設定します。内容は Map<String, String> で、キーはパターン、値はサービス名です。このパターンは Intercept のルールを使用します。

excludePatterns

 

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

includeMessageBody

false

zipkin トレースに Camel メッセージボディーを含めるかどうか。これは、本番環境での使用や、ペイロードが大きい場合にはお勧めできません。デバッグログの最大サイズ を設定することで、サイズを制限できます。 

includeMessageBodyStreams

false

zipkin トレースにストリームベースのメッセージボディーを含めるかどうか。これには、ルートでストリームキャッシングを有効にするか、CamelContext でグローバルに有効にする必要があります。これは、本番環境での使用や、ペイロードが大きい場合にはお勧めできません。デバッグログの最大サイズ を設定することで、サイズを制限できます。