209.12. MetricsMessageHistoryFactory
Camel 2.17 から利用可能
このファクトリーでは、メッセージのルーティング中にメトリクスを使用して Message History パフォーマンス統計を取得できます。これは、すべてのルートの各ノードにメトリクス Timer を使用して機能します。 このファクトリーは、以下の例のように Java および XML で使用できます。
Java では、以下のようにファクトリーを CamelContext に設定します。
context.setMessageHistoryFactory(new MetricsMessageHistoryFactory());
XML DSL の場合、以下のように <bean> を定義します。
<!-- use camel-metrics message history to gather metrics for all messages being routed -->
<bean id="metricsMessageHistoryFactory" class="org.apache.camel.component.metrics.messagehistory.MetricsMessageHistoryFactory"/>
ファクトリーでは以下のオプションがサポートされます。
| Name | デフォルト | 説明 |
|---|---|---|
| useJmx | false |
|
| jmxDomain | org.apache.camel.metrics | JMX ドメイン名 |
| prettyPrint | false | 統計を json 形式で出力する際に Pretty print を使用するかどうか。 |
| metricsRegistry |
|
共有 |
| rateUnit | TimeUnit.SECONDS | メトリクスレポーターまたは統計を json 出力するときのレートに使用する単位。 |
| durationUnit | TimeUnit.MILLISECONDS | メトリクスレポーターまたは統計を json 出力するときの期間に使用する単位。 |
| namePattern |
|
使用する名前パターン。区切り文字としてドットを使用しますが、変更できます。値 |
実行時にメトリクスには Java API または JMX からアクセスでき、データを json 出力として収集できます。
Java コードから、以下のように CamelContext からサービスを取得できます。
MetricsMessageHistoryService service = context.hasService(MetricsMessageHistoryService.class);
String json = service.dumpStatisticsAsJson();
また、JMX API では、Bean は name=MetricsMessageHistoryService の type=services ツリーに登録されます。