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 中,您 定义了一个 <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.MetricRegistry
Service
MetricRegistryService registryService = context.hasService(MetricsRegistryService.class); if (registryService != null) { MetricsRegistry registry = registryService.getMetricsRegistry(); ... }
选项
MetricsRoutePolicyFactory
和 MetricsRoutePolicy
支持以下选项:
Name | default | 描述 |
|
| 指标报告器中使用的持续时间单位,或者在将统计信息转储为 json 时。 |
|
| JXM 域名。 |
|
允许使用共享 | |
|
| 在以 json 格式输出统计信息时,是否使用用户用户打印。 |
|
| 指标报告器或以 json 转储统计时使用的单位。 |
|
|
使用
请注意,如果在 CamelContext 上启用了 JMX,则将在 JMX 树中的服务类型下放入 |