将度量从ActiveMQ Artemis发送到Prometheus

将度量从ActiveMQ Artemis发送到Prometheus,prometheus,activemq-artemis,Prometheus,Activemq Artemis,我有一个问题,我无法确定如何解决它 在我的工作项目中,我有一个ActiveMQ队列,我想向Prometheus发送一些指标,这将帮助我在Grafana中创建一些警报。我知道我可以使用ActiveMQ Artemis,但我不完全理解如何配置它 我的应用程序部署在Kubernetes集群上,ActiveMQ代理也在那里。因此,我创建了ActiveMQPrometheusMetricsPlugin类,该类实现了org.apache.activemq.artemis.core.server.metric

我有一个问题,我无法确定如何解决它

在我的工作项目中,我有一个ActiveMQ队列,我想向Prometheus发送一些指标,这将帮助我在Grafana中创建一些警报。我知道我可以使用ActiveMQ Artemis,但我不完全理解如何配置它

我的应用程序部署在Kubernetes集群上,ActiveMQ代理也在那里。因此,我创建了ActiveMQPrometheusMetricsPlugin类,该类实现了
org.apache.activemq.artemis.core.server.metrics.ActiveMQMetricsPlugin
。现在我感到困惑的是,我应该部署我的应用程序,而度量标准将由普罗米修斯收集?我应该做更多的配置吗


我们通常不在本地环境上构建应用程序。我们正在使用一个管道来构建应用程序并将其部署到各种环境(开发、测试、产品)。我应该做与GitHub插件项目类似的配置,部署它,然后在Kubernetes上找到那些JAR并将它们移动到正确的位置?开发人员还告诉我,我们使用的是默认配置。我不知道我们是否有
broker.xml
文件。

在开始之前,有几个要点需要了解:

  • 当使用Artemis Prometheus Metrics插件时,代理和应用程序都不会向Prometheus“发送”度量。普罗米修斯本身必须从经纪人那里检索或“刮取”指标。这就是插件附带servlet的原因。servlet公开了一个HTTP端点,Prometheus可以使用它来获取度量
  • Artemis Prometheus Metrics插件是代理基础架构的一部分。它不能作为应用程序的一部分进行部署。插件的jar和war文件部署在代理上,并分别在
    broker.xml
    bootstrap.xml
    中配置
Artemis Prometheus Metrics插件使用两个模块提供与Prometheus的集成:

  • artemis-prometheus-metrics-plugin:这提供了org.apache.activemq.artemis.core.server.metrics.activemqmetrics-plugin和 用千分尺和普罗米修斯相依物包装在一个“优步”罐子里

  • artemis prometheus metrics plugin servlet:这提供了一个war文件,其中包含一个简单的servlet,可以部署到代理的嵌入式web服务器上,然后prometheus可以使用该服务器获取指标

克隆Artemis Prometheus Metrics插件库后,只需运行
mvn install
即可构建这两个模块。输出将位于各自的
target
目录中

构建模块后,按照以下步骤部署和配置Artemis Prometheus Metrics插件。如果您有某种dev-ops组来管理和配置您的代理,那么他们将遵循以下步骤

  • 将artemis prometheus metrics插件/target/artemis prometheus metrics插件-.jar复制到
    /lib

  • 将此添加到您的
    /etc/broker.xml

    
    
  • 创建目录
    /web

  • 将artemis prometheus metrics插件servlet/target/metrics.war复制到
    /web

  • 将其添加到
    /etc/bootstrap.xml
    中的
    web
    元素:

    
    

  • 关于配置Artemis Prometheus Metrics插件,您到底不了解什么?为什么你要创建自己的插件,而插件已经存在(并且可以工作)?另外,你使用的是什么版本的ActiveMQ?你的开发人员操作“默认配置”是什么意思?如果您没有
    broker.xml
    代理如何配置?您的应用程序与Prometheus从代理收集指标的具体关系如何?一般来说,这两件事是100%独立的。@JustinBertram ActiveMQ版本它是ActiveMQ-artemis:2.16-alpine-latest。开发人员告诉我,他在没有任何broker.xml文件的情况下运行activemq,以查看它是否工作。对于第一个问题,我不太确定我是否理解,我应该克隆插件repo,构建它并部署在自述文件中的位置?我们想在普罗米修斯收集这些指标,用它们在格拉法纳生成一些图表和基于它们的一些警报。非常感谢你花这么多时间向我解释这些事情。我以前没有这方面的经验。我明天会试试,我希望一切都会好起来。