220.12. MetricsRoutePolicyFactory
此工厂允许为每个路由添加一个 RoutePolicy,该路由使用 Dropwizard 指标公开路由利用率统计。此工厂可以在 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 支持以下选项:
| 名称 | default | 描述 |
|---|---|---|
| useJmx | false |
是否使用 |
| jmxDomain | org.apache.camel.metrics | JMX 域名 |
| prettyPrint | false | 在以 json 格式输出统计信息时是否使用用户打印 |
| metricsRegistry |
允许使用共享 | |
| rateUnit | TimeUnit.SECONDS | 在指标报告器或将统计信息转储为 json 时用于速率的单位。 |
| durationUnit | TimeUnit.MILLISECONDS | 在指标报告器中使用 for 单位,或者在将统计信息转储为 json 时。 |
| namePattern |
|
Camel 2.17: 要使用的名称模式。使用点作为分隔符,但您可以更改。值 |
从 Java 代码中,您可以从 org.apache.camel.component.metrics.metrics.metrics.MetricsRegistryService 中获取 ,如下所示:
com.codahale.metrics.MetricRegistry Service
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();
...
}