搜索

2.15. 指标

download PDF

概述

从 Camel 2.14 开始提供

虽然 Camel 提供了很多与现有的指标集成,但为 Camel 路由添加了 Codahale 指标。这使得最终用户能够无缝地源 Camel 路由信息及其使用 Codahale 指标收集的现有数据。

要使用 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 >,它指定为路由的策略;例如:

<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 中,您定义一个 &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.routepolicy.MetricsRegistry 的 com.codahale.metrics.MetricRegistry Service,如下所示:

MetricRegistryService registryService = context.hasService(MetricsRegistryService.class);
if (registryService != null) {
  MetricsRegistry registry = registryService.getMetricsRegistry();
  ...
}

选项

MetricsRoutePolicyFactoryMetricsRoutePolicy 支持以下选项:

Name

default

描述

durationUnit

TimeUnit.MILLISECONDS

指标报告器中使用的持续时间单位,或者在将统计信息转储为 json 时。

jmxDomain

org.apache.camel.metrics

JXM 域名。

metricsRegistry

 

允许使用共享 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 时才需要将 useJmx 设置为 true。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.