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,您将定义一个 < bean>
; 指定一个 <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"/> [...]
指标路由策略 onnectionFactoryy
此工厂允许每个路由添加一个 RoutePolicy
,该路由利用 Codahale 指标公开路由利用率统计信息。该工厂可以在 Java 和 XML 中使用,如下例所示。
从 Java 中,您刚刚将工厂添加到 CamelContext
中,如下所示:
context.addRoutePolicyFactory(new MetricsRoutePolicyFactory());
从 XML DSL 中,您可以按照如下所示定义 & lt;bean&
gt;:
<!-- 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.MetricsRegistry 获取 com.codahale
.metrics.metrics.routepolicy.MetricsRegistryService
MetricRegistryService registryService = context.hasService(MetricsRegistryService.class); if (registryService != null) { MetricsRegistry registry = registryService.getMetricsRegistry(); ... }
选项
MetricsRoutePolicyFactory
和 MetricsRoutePolicy
支持以下选项:
名称 | default | 描述 |
|
| 在指标报告器或转储统计 json 中用于持续时间的单元。 |
|
| JXM 域名。 |
|
allow 使用共享的 | |
|
| 以 json 格式输出统计时是否使用完整的打印。 |
|
| 指标报告器或转储统计为 json 的比率的单元。 |
|
|
是否使用
请注意,如果在 CamelContext 上启用了 JMX,那么在 JMX 树中的服务类型下列出了 |