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
が発生します。