Apache ActiveMQ - 检索 JMS 指标

Posted

技术标签:

【中文标题】Apache ActiveMQ - 检索 JMS 指标【英文标题】:Apache ActiveMQ - retrieving JMS metrics 【发布时间】:2020-12-03 16:57:08 【问题描述】:

在我的公司项目中,我使用的是 Spring Boot 和 Apache ActiveMQ 5.x Spring Boot starter。我完全是这方面的初学者。

我的目标是使用一些 JMS 队列指标公开 Prometheus 端点:

队列中的消息数 错误队列中的消息数

检索此类指标的专用工具有哪些?到目前为止,我已经找到了两种可能的方法。谁能确认这两个工具中的哪一个可以解决我的问题?

https://docs.spring.io/spring-integration/docs/5.1.7.RELEASE/reference/html/#system-management-chapter https://activemq.apache.org/components/artemis/documentation/latest/metrics.html(这里的例子不是很有帮助)

【问题讨论】:

meta.stackexchange.com/questions/158809/… 看依赖:activemq-all:5.16.0 和 spring-boot-starter-activemq:2.0.9.RELEASE 我必须使用 ActiveMQ。所以这两个链接都不适用于我的任务? 【参考方案1】:

我认为 Spring 的东西不会起作用,因为它会从应用程序本身而不是 ActiveMQ 代理提供与 Spring 相关的指标。

此外,您引用的 ActiveMQ 文档适用于 ActiveMQ Artemis。但是,您使用的依赖项适用于 ActiveMQ 5.x。因此,该文档不适用。但是,如果您选择使用 ActiveMQ Artemis,则使用此 Prometheus metrics plugin implementation 公开 Prometheus 端点非常简单。值得注意的是,Artemis 是 ActiveMQ 的下一代消息代理。如果您要开始一个新项目,我建议您使用它而不是 5.x。 Artemis 计划在未来取代 5.x,成为 ActiveMQ 6.0。

我认为您最好的选择是配置Prometheus JMX exporter。它甚至有一个用于 ActiveMQ 5.x 的sample configuration。

【讨论】:

【参考方案2】:

ActiveMQ 带有Jolokiabundled by default,用于为 JVM、队列和使用 HTTP 的一堆其他指标提取 JMX Bean。这样我们就可以使用Telegraf 之类的软件轻松导出,该软件带有simple input plugin for ActiveMQ 和simple output plugin for Prometheus。

【讨论】:

以上是关于Apache ActiveMQ - 检索 JMS 指标的主要内容,如果未能解决你的问题,请参考以下文章

JMS-activeMq点对点模式

使用 JMS (ActiveMQ) 进行单元测试

Apache ActiveMQ教程二 (消息主题订阅)

Apache ActiveMQ教程二 (消息主题订阅)

实现JMS规范的ActiveMQ

ActionMQ5.8.0 JMS实例 手把手详细图解