91.13. 使用 Micrometer 路由策略工厂
MicrometerRoutePolicyFactory 允许为每个路由添加一个 RoutePolicy,以便使用 Micrometer 来公开路由利用率统计。此工厂可以在 Java 和 XML 中使用,如下例所示。
如果您只想检测几个所选路由,您可以使用 定义您要检测的每个路由的专用 MicrometerRoutePolicy。
MicrometerRoutePolicy Factory
从 Java,您刚刚将工厂添加到 CamelContext 中,如下所示:
context.addRoutePolicyFactory(new MicrometerRoutePolicyFactory());
context.addRoutePolicyFactory(new MicrometerRoutePolicyFactory());
在 XML DSL 中,您可以定义一个 <bean>,如下所示:
<!-- use camel-micrometer route policy to gather metrics for all routes --> <bean id="metricsRoutePolicyFactory" class="org.apache.camel.component.micrometer.routepolicy.MicrometerRoutePolicyFactory"/>
<!-- use camel-micrometer route policy to gather metrics for all routes -->
<bean id="metricsRoutePolicyFactory" class="org.apache.camel.component.micrometer.routepolicy.MicrometerRoutePolicyFactory"/>
MicrometerRoutePolicyFactory 和 MicrometerRoutePolicy 支持以下选项:
| Name | default | 描述 |
|---|---|---|
| prettyPrint | false | 在以 json 格式输出统计信息时是否使用用户打印 |
| meterRegistry |
允许使用共享的 | |
| durationUnit | TimeUnit.MILLISECONDS | 将统计信息转储为 json 时用于持续时间的单位。 |
| 配置 | 请参见以下 | MicrometerRoutePolicyConfiguration.class |
MicrometerRoutePolicyConfiguration 支持以下选项:
| Name | default | 描述 |
|---|---|---|
| additionalCounters | true | 激活所有附加计数器 |
| exchangesSucceeded | true | 激活成功交换的计数器 |
| exchangesFailed | true | 激活失败的交换计数器 |
| exchangesTotal | true | 激活交换总数的计数器 |
| externalRedeliveries | true | 激活交换的重新设计计数器 |
| failuresHandled | true | 激活处理失败的计数器 |
| longTask | false | 激活较长的任务计时器(当前处理微主题时间) |
| timerInitiator | null | 用于自定义初始化计时器的 consumer<Timer.Builder> |
| longTaskInitiator | null | consumer<LongTaskTimer.Builder> 用于自定义初始化 LongTaskTimer |
如果在 CamelContext 中启用了 JMX,则使用 name=MicrometerRoutePolicy 在 type=services 树中注册 MBean。