2.15. 指标
概述
从 Camel 2.14 开始提供
当 Camel 为 Camel 路由添加了大量现有指标与 Codahale 指标集成。这允许最终用户使用 Codahale 指标将 Camel 路由信息与收集的现有数据无缝化。
要使用 Codahale 指标,您需要:
- 添加 camel-metrics 组件
- 在 XML 或 Java 代码中启用路由指标
请注意,只有在您以一种方式显示它们时,性能指标才可用;任何可与 JMX 集成的监控工具都可以使用,因为指标可以通过 JMX 提供。此外,实际数据是 100% Codehale JSON。
指标路由策略
可通过基于每个路由定义 MetricsRoutePolicy
来实现单一路由的 Codahale 指标。
从 Java 创建 MetricsRoutePolicy
实例,以分配为路由的策略。下面显示了:
from("file:src/data?noop=true").routePolicy(new MetricsRoutePolicy()).to("jms:incomingOrders");
从 XML DSL 中,您定义一个 & lt;bean
>,它指定为路由的策略;例如:
<bean id="policy" class="org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicy"/> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route routePolicyRef="policy"> <from uri="file:src/data?noop=true"/> [...]
指标路由策略工厂
此工厂允许每个路由添加一个 RoutePolicy
,该路由使用 Codahale 指标公开路由利用率统计。此工厂可以在 Java 和 XML 中使用,如下例所示。
从 Java,您刚刚将工厂添加到 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"/>
从 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(); ... }
选项
MetricsRoutePolicyFactory
和 MetricsRoutePolicy
支持以下选项:
Name | default | 描述 |
|
| 在指标报告器中使用 for 单位,或者在将统计信息转储为 json 时。 |
|
| JXM 域名。 |
|
允许使用共享 | |
|
| 在以 json 格式输出统计信息时是否使用用户打印。 |
|
| 在指标报告器或将统计信息转储为 json 时用于速率的单位。 |
|
|
是否使用
请注意,如果在 CamelContext 上启用了 JMX,则 |