219.12. MetricsRoutePolicyFactory

このファクトリーを使用すると、Dropwizard メトリックを使用してルート使用率の統計を公開するルートごとに RoutePolicy を追加できます。このファクトリーは、以下の例のように Java および XML で使用できます。 

注記

MetricsRoutePolicyFactory を使用する代わりに、選択した少数のルートのみを計測する場合に備えて、計測するルートごとに MetricsRoutePolicy を定義できます。

Java DSL の場合は、以下のようにファクトリーを CamelContext に追加します。

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"/>

MetricsRoutePolicyFactory および MetricsRoutePolicy は、以下のオプションをサポートします。

名前デフォルト説明

useJmx

false

com.codahale.metrics.JmxReporter を使用して、詳細な統計情報を JMX に報告するかどうか。
CamelContext で JMX が有効になっている場合、JMX ツリーのサービスタイプの下に MetricsRegistryService mbean が登録されていることに注意してください。この mbean には、統計を JSON 出力する 1 つのオペレーションがあります。useJmx を true に設定する必要があるのは、統計タイプごとに細かい mbeans を生成する場合のみです。

jmxDomain

org.apache.camel.metrics

JMX ドメイン名

prettyPrint

false

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

metricsRegistry

 

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

rateUnit

TimeUnit.SECONDS

メトリクスレポーターまたは統計を json 出力するときのレートに使用する単位。

durationUnit

TimeUnit.MILLISECONDS

メトリクスレポーターまたは統計を json 出力するときの期間に使用する単位。

namePattern

name.routeId.type

Camel 2.17: 使用する名前パターン。セパレータとしてドットを使用しますが、これは変更できます。値 namerouteId、および type は実際の値に置き換えられます。name は CamelContext の名前です。routeId はルートの名前です。type はレスポンスの値です。

 

以下に示すように、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();
  ...
}