218.4. Metric Registry
Camel Metrics コンポーネントは、デフォルトで、60 秒のレポート間隔を持つ Slf4jReporter
を持つ MetricRegistry
インスタンスを使用します。このデフォルトのレジストリーは、MetricRegistry
Bean を提供することでカスタムレジストリーに置き換えることができます。アプリケーションに複数の MetricRegistry
Bean が存在する場合、名前が metricRegistry
のものが使用されます。
たとえば、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
が発生します。