219.12. MetricsRoutePolicyFactory
このファクトリーを使用すると、Dropwizard メトリックを使用してルート使用率の統計を公開するルートごとに RoutePolicy を追加できます。このファクトリーは、以下の例のように Java および XML で使用できます。
MetricsRoutePolicyFactory を使用する代わりに、選択した少数のルートのみを計測する場合に備えて、計測するルートごとに MetricsRoutePolicy を定義できます。
Java DSL の場合は、以下のようにファクトリーを CamelContext に追加します。
context.addRoutePolicyFactory(new MetricsRoutePolicyFactory());
context.addRoutePolicyFactory(new MetricsRoutePolicyFactory());
XML DSL の場合は、<bean> を以下のように定義します。
<!-- use camel-metrics route policy to gather metrics for all routes --> <bean id="metricsRoutePolicyFactory" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFactory"/>
<!-- use camel-metrics route policy to gather metrics for all routes -->
<bean id="metricsRoutePolicyFactory" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFactory"/>
MetricsRoutePolicyFactory および MetricsRoutePolicy は、以下のオプションをサポートします。
| 名前 | デフォルト | 説明 |
|---|---|---|
| useJmx | false |
|
| jmxDomain | org.apache.camel.metrics | JMX ドメイン名 |
| prettyPrint | false | 統計情報を json 形式で出力する際に pretty print を使用するかどうか |
| metricsRegistry |
|
共有 |
| rateUnit | TimeUnit.SECONDS | メトリクスレポーターまたは統計を json 出力するときのレートに使用する単位。 |
| durationUnit | TimeUnit.MILLISECONDS | メトリクスレポーターまたは統計を json 出力するときの期間に使用する単位。 |
| namePattern |
|
Camel 2.17: 使用する名前パターン。セパレータとしてドットを使用しますが、これは変更できます。値 |
以下に示すように、Java コードからは、org.apache.camel.component.metrics.routepolicy.MetricsRegistryService から com.codahale.metrics.MetricRegistry を取得できます。
MetricRegistryService registryService = context.hasService(MetricsRegistryService.class);
if (registryService != null) {
MetricsRegistry registry = registryService.getMetricsRegistry();
...
}
MetricRegistryService registryService = context.hasService(MetricsRegistryService.class);
if (registryService != null) {
MetricsRegistry registry = registryService.getMetricsRegistry();
...
}