220.11. MicrometerMessageHistoryFactory

このファクトリーを使用すると、メトリクスを使用して、メッセージのルーティング中にメッセージ履歴のパフォーマンス統計を取得できます。これは、すべてのルートの各ノードに Micrometer Timer を使用することで機能します。 このファクトリーは、以下の例のように Java および XML で使用できます。 

Java DSL の場合は、以下のようにファクトリーを CamelContext に設定するだけです。

context.setMessageHistoryFactory(new MicrometerMessageHistoryFactory());

XML DSL の場合は、<bean> を以下のように定義します。

  <!-- use camel-micrometer message history to gather metrics for all messages being routed -->
  <bean id="metricsMessageHistoryFactory" class="org.apache.camel.component.micrometer.messagehistory.MicrometerMessageHistoryFactory"/>

ファクトリーでは、次のオプションがサポートされています。

名前デフォルト説明

prettyPrint

false

統計情報を json 形式で出力する際に pretty print を使用するかどうか

meterRegistry

 

共有 MeterRegistry の使用を許可します。指定しない場合は、Camel はこの CamelContext によって使用される共有インスタンスを作成します。

durationUnit

TimeUnit.MILLISECONDS

統計を json としてダンプするときに使用する期間の単位。

実行時に、メトリクスは Java API または JMX からアクセスでき、JSON 出力としてデータを収集できます。

Java コードから、次のように CamelContext からサービスを取得できます。

MicrometerMessageHistoryService service = context.hasService(MicrometerMessageHistoryService.class);
String json = service.dumpStatisticsAsJson();

JMX が CamelContext で有効になっている場合、MBean は type=services ツリーに name=MicrometerMessageHistory で登録されます。