Spring 集成 DSL 在流之间收集指标
Spring Integration DSL Gathering Metrics between Flows
我正在使用 Spring Integration DSL with ActiveMQ 和并发消费者,并尝试调整 Spring IntegrationFlows 的指标,后者使用直接通道和路由器相互交互。
典型的集成流程如下所示:
-> InboundFlow1 -> Transformer|
ActiveMQ Broker ->JMS InboundAdapter -> Router | -> OutboundFlow -> JMS OutboundAdapter
-> InboundFlow2 -> Transformer|
每个流包含入站 JMS 适配器、路由器、过滤器、转换器和出站 JMS 网关。
有没有办法从 InboundAdapter 收集此类指标到 OutboundAdapter:
- 每秒消息数量;
- 留言总数;
- 通过流的最小传输时间;
- 通过流的最大传输时间;
- 流转平均时间;
- 错误消息的数量;
- 处理一条消息的时长;
我尝试过使用 MessageChannelMetrics 提出的解决方案:
https://docs.spring.io/spring-integration/reference/html/system-management-chapter.html#mgmt-channel-features
https://github.com/spring-projects/spring-integration-samples/tree/master/intermediate/monitoring
但它们没有涵盖所需的功能。
除第一个和最后一个之外的所有内容都存在;第一个可以导出;最后一个将意味着为每条消息捕获它,这将是昂贵的。
但是,Spring Integration 5.0.4 现在除了支持这些标准指标外还支持 Micrometer。
编辑
此外,如果标准指标不能满足您的需要,您始终可以添加自定义指标工厂docs here。
只需编写您自己的 AbstractMessageHandlerMetrics
子类即可捕获您想要的任何内容。
我正在使用 Spring Integration DSL with ActiveMQ 和并发消费者,并尝试调整 Spring IntegrationFlows 的指标,后者使用直接通道和路由器相互交互。
典型的集成流程如下所示:
-> InboundFlow1 -> Transformer|
ActiveMQ Broker ->JMS InboundAdapter -> Router | -> OutboundFlow -> JMS OutboundAdapter
-> InboundFlow2 -> Transformer|
每个流包含入站 JMS 适配器、路由器、过滤器、转换器和出站 JMS 网关。
有没有办法从 InboundAdapter 收集此类指标到 OutboundAdapter:
- 每秒消息数量;
- 留言总数;
- 通过流的最小传输时间;
- 通过流的最大传输时间;
- 流转平均时间;
- 错误消息的数量;
- 处理一条消息的时长;
我尝试过使用 MessageChannelMetrics 提出的解决方案:
https://docs.spring.io/spring-integration/reference/html/system-management-chapter.html#mgmt-channel-features
https://github.com/spring-projects/spring-integration-samples/tree/master/intermediate/monitoring
但它们没有涵盖所需的功能。
除第一个和最后一个之外的所有内容都存在;第一个可以导出;最后一个将意味着为每条消息捕获它,这将是昂贵的。
但是,Spring Integration 5.0.4 现在除了支持这些标准指标外还支持 Micrometer。
编辑
此外,如果标准指标不能满足您的需要,您始终可以添加自定义指标工厂docs here。
只需编写您自己的 AbstractMessageHandlerMetrics
子类即可捕获您想要的任何内容。