2.15. 指标

概述

Camel 2.14 已提供

虽然 Camel 提供了很多现有指标集成,但为 Camel 路由添加了 Codahale 指标。这使得最终用户能够使用 Codahale 指标将 Camel 路由信息与所收集的现有数据连接在一起。

要使用 Codahale 指标,您需要:

  1. 添加 camel-metrics 组件
  2. 在 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&gt; 指定一个 <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();
  ...
}

选项

MetricsRoutePolicyFactoryMetricsRoutePolicy 支持以下选项:

名称

default

描述

durationUnit

TimeUnit.MILLISECONDS

在指标报告器或转储统计 json 中用于持续时间的单元。

jmxDomain

org.apache.camel.metrics

JXM 域名。

metricsRegistry

 

allow 使用共享的 com.codahale.metrics.MetricRegistry。如果没有提供,则 Camel 将创建此 CamelContext 使用的共享实例。

prettyPrint

false

以 json 格式输出统计时是否使用完整的打印。

rateUnit

TimeUnit.SECONDS

指标报告器或转储统计为 json 的比率的单元。

useJmx

false

是否使用 com.codahale.metrics.JmxReporter 将精细统计报告为 JMX。

请注意,如果在 CamelContext 上启用了 JMX,那么在 JMX 树中的服务类型下列出了 MetricsRegistryService mbean。该 mbean 有单一操作,可使用 json 输出统计信息。只有在您希望每个统计类型进行精细 mbeans 时,才需要使用Jmx 设置为 true。