2.15. 指标
概述
可从 Camel 2.14 开始
虽然 Camel 提供了大量现有的指标集成,但为 Camel 路由添加了 Codahale 指标。这使得最终用户能够无缝地将 Camel 路由信息与使用 Codahale 指标收集的现有数据一起进行传输。
要使用 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.routepolicy.MetricsRegistry 的 com.codahale.metrics.MetricsRegistryService 的
com.codahale.metrics.MetricRegistry
Registry。
MetricRegistryService registryService = context.hasService(MetricsRegistryService.class); if (registryService != null) { MetricsRegistry registry = registryService.getMetricsRegistry(); ... }
选项
MetricsRoutePolicyFactory
和 MetricsRoutePolicy
支持以下选项:
Name | default | 描述 |
|
| 指标报告程序中的 for 持续时间或者将统计信息转储到 json 时使用的单位。 |
|
| JXM 域名。 |
|
allow 使用共享的 | |
|
| 是否在以 json 格式输出统计信息时要打印情况。 |
|
| 指标报告者中用于速率的单位,或者将统计信息转储到 json。 |
|
|
是否使用
请注意,如果在 CamelContext 上启用了 JMX,则会在 JMX 树中的服务类型下列出 |