221.11. MicrometerMessageHistoryFactory
此工厂允许使用指标在路由消息时捕获消息历史性能统计信息。它的工作原理为所有路由中的每个节点使用 Micrometer Timer。此工厂可在 Java 和 XML 中使用,如下例所示。
从 Java 中,您刚刚将工厂设置为 CamelContext
,如下所示:
context.setMessageHistoryFactory(new MicrometerMessageHistoryFactory());
从 XML DSL 中,您定义一个 <bean>,如下所示:
<!-- use camel-micrometer message history to gather metrics for all messages being routed --> <bean id="metricsMessageHistoryFactory" class="org.apache.camel.component.micrometer.messagehistory.MicrometerMessageHistoryFactory"/>
工厂支持以下选项:
Name | default | 描述 |
---|---|---|
prettyPrint | false | 在以 json 格式输出统计信息时,是否使用用户用户打印 |
meterRegistry |
允许使用共享 | |
durationUnit | TimeUnit.MILLISECONDS | 将统计数据转储为 json 时用于持续时间的单位。 |
在运行时,可以从 Java API 或 JMX 访问指标,允许将数据作为 json 输出收集数据。
从 Java 代码中,您可以从 CamelContext 获取服务,如下所示:
MicrometerMessageHistoryService service = context.hasService(MicrometerMessageHistoryService.class); String json = service.dumpStatisticsAsJson();
如果在 CamelContext 中启用了 JMX,则 MBean 会在 type=services
树中注册,并带有 name=MicrometerMessageHistory
。