209.4. Metric Registry
Camel Metrics コンポーネントは、デフォルトで 60 秒のレポーティング間隔を持つ Slf4jReporter を持つ MetricRegistry インスタンスを使用します。このデフォルトレジストリーは、MetricRegistry Bean を指定してカスタムのレジストリーに置き換えることができます。複数の MetricRegistry Bean がアプリケーションに存在する場合は、metricRegistry という名前の Bean が使用されます。
Spring Java 設定の使用例:
@Configuration
public static class MyConfig extends SingleRouteCamelConfiguration {
@Bean
@Override
public RouteBuilder route() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
// define Camel routes here
}
};
}
@Bean(name = MetricsComponent.METRIC_REGISTRY_NAME)
public MetricRegistry getMetricRegistry() {
MetricRegistry registry = ...;
return registry;
}
}
または、CDI を使用します。
class MyBean extends RouteBuilder {
@Override
public void configure() {
from("...")
// Register the 'my-meter' meter in the MetricRegistry below
.to("metrics:meter:my-meter");
}
@Produces
// If multiple MetricRegistry beans
// @Named(MetricsComponent.METRIC_REGISTRY_NAME)
MetricRegistry registry() {
MetricRegistry registry = new MetricRegistry();
// ...
return registry;
}
}
MetricRegistry は、レポートに内部スレッドを使用します。ユーザーが終了時にクリーンアップするには、バージョン DropWizard 3.0.1 にはパブリック API はありません。そのため、Camel Metrics コンポーネントを使用すると Java クラスローダーのリークが発生し、場合によっては OutOfMemoryErrors が発生します。