220.13. MetricsMessageHistoryFactory


从 Camel 2.17 开始提供

此工厂允许在路由消息时使用指标捕获消息历史性能统计信息。它的工作原理是在所有路由中使用每个节点的指标计时器。此工厂可以在 Java 和 XML 中使用,如下例所示。

从 Java,您刚刚将工厂设置为 CamelContext,如下所示:

context.setMessageHistoryFactory(new MetricsMessageHistoryFactory());

在 XML DSL 中,您可以定义一个 <bean>,如下所示:

  <!-- use camel-metrics message history to gather metrics for all messages being routed -->
  <bean id="metricsMessageHistoryFactory" class="org.apache.camel.component.metrics.messagehistory.MetricsMessageHistoryFactory"/>

工厂支持以下选项:

名称default描述

useJmx

false

是否使用 com.codahale.metrics.JmxReporter 将精细的统计信息报告给 JMX。
请注意,如果在 CamelContext 上启用了 JMX,则 MetricsRegistryService mbean 将列在 JMX 树中的服务类型下。该 mbean 具有单个操作,可以使用 json 输出统计信息。只有在您希望每个统计类型的细粒度 mbeans 时,才需要 使用Jmx 设置为 true。

jmxDomain

org.apache.camel.metrics

JMX 域名

prettyPrint

false

在以 json 格式输出统计信息时是否使用用户打印

metricsRegistry

 

允许使用共享 com.codahale.metrics.MetricRegistry。如果没有提供任何服务,则 Camel 将创建一个由此 CamelContext 使用的共享实例。

rateUnit

TimeUnit.SECONDS

在指标报告器或将统计信息转储为 json 时用于速率的单位。

durationUnit

TimeUnit.MILLISECONDS

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

namePattern

name.routeId.id.type

要使用的名称模式。使用点作为分隔符,但您可以更改。值 name, routeId, type, 和 id 将替换为实际值。其中 name 是 CamelContext 的名称。routeId 是路由的名称。id 模式代表节点 ID。type 是 history 的值。

在运行时,可以从 Java API 或 JMX 访问指标,允许以 json 输出的形式收集数据。

从 Java 代码中,您可以从 CamelContext 获取服务,如下所示:

MetricsMessageHistoryService service = context.hasService(MetricsMessageHistoryService.class);
String json = service.dumpStatisticsAsJson();

和 JMX API,MBean 在 type=services 树中注册,其名称为 name=MetricsMessageHistoryService

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.