209.11. MetricsRoutePolicyFactory
このファクトリーでは、Dropwizard メトリクスを使用してルート使用状況の統計を公開する各ルートに RoutePolicy を追加できます。このファクトリーは、以下の例のように Java および XML で使用できます。
MetricsRoutePolicyFactory を使用する代わりに、インストルメント化するルートごとに MetricsRoutePolicy を定義できます。この場合、一部の選択したルートのみをインストルメント化できます。
Java の場合は、以下のようにファクトリーを 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 は以下のオプションをサポートします。
| Name | デフォルト | 説明 |
|---|---|---|
| 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 コード tou から、以下のように 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();
...
}