第381章 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 を簡単に使用できます。
381.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 でグローバルに有効にする必要があります。これは、本番環境での使用や、ペイロードが大きい場合にはお勧めできません。デバッグログの最大サイズ を設定することで、サイズを制限できます。 |