如何通过Jolokia获取ActiveMQ Artemis的OpenWire连接数?
监控ActiveMQ Artemis中OpenWire客户端数量(Jolokia方式)
ActiveMQ Artemis的MBean结构与Classic不同,没有直接提供汇总的OpenWire连接数指标,但可以通过Jolokia查询连接MBean并按协议过滤来统计数量,具体操作如下:
1. 确认Jolokia已启用
检查broker配置文件(broker.xml)中是否开启了Jolokia,默认配置通常已启用,关键配置段如下:
<management-bindings> <http-connector name="http-connector" socket-binding="http"> <param key="jolokia-enabled" value="true"/> </http-connector> </management-bindings>
Jolokia默认访问地址为http://<broker-host>:8161/jolokia,与控制台端口一致。
2. 查询并统计OpenWire连接
方式一:批量读取连接协议属性
通过POST请求批量获取所有连接的protocol属性,再统计值为OPENWIRE的条目数:
curl -X POST "http://<broker-host>:8161/jolokia" \ -H "Content-Type: application/json" \ -d '{ "type": "read", "mbean": "org.apache.activemq.artemis:type=Connection,name=*", "attribute": "protocol", "ignoreErrors": true }'
返回的JSON结果中,value字段是键值对集合(键为连接MBean名称,值为协议类型),统计其中值为OPENWIRE的条目数即可得到客户端数量。
方式二:先搜索连接MBean再逐个查询
先搜索所有连接相关的MBean:
curl -X GET "http://<broker-host>:8161/jolokia/search/org.apache.activemq.artemis:type=Connection,name=*"
返回的value数组包含所有连接的MBean对象名,之后可对每个对象名单独查询protocol属性,再筛选统计。
3. 集成到监控系统(可选)
若要将指标集成到Prometheus、Grafana等系统,可通过jmx_exporter配置规则,将连接协议作为标签,再用计数函数统计:
rules: - pattern: "org.apache.activemq.artemis:type=Connection,name=.*,protocol=(.*)" name: activemq_artemis_connections_total labels: protocol: "$1"
之后即可用activemq_artemis_connections_total{protocol="OPENWIRE"}直接获取OpenWire客户端数量。
内容的提问来源于stack exchange,提问作者TomTichy
相关产品推荐
相关产品推荐

