220.13. MetricsMessageHistoryFactory
Camel 2.17 以降で利用可能
このファクトリーでは、メトリクスを使用して、メッセージのルーティング中にメッセージ履歴のパフォーマンス統計情報をキャプチャーできます。これは、すべてのルートの各ノードにメトリクスタイマーを使用することで機能します。このファクトリーは、以下の例のように 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"/>
ファクトリーでは、次のオプションがサポートされています。
名前 | デフォルト | 説明 |
---|---|---|
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 MBean は、name=MetricsMessageHistoryService
で type=services
ツリーに登録されています。