You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在New Relic中动态暴露并查看ActiveMQ队列与主题

解决ActiveMQ通过JMX接入New Relic基础设施代理仅显示少量队列/主题的问题

修正JMX查询的通配符用法

ActiveMQ的JMX对象名支持*作为通配符匹配任意字符,你需要将配置中的具体名称替换为*,同时覆盖所有Broker、主题和队列:

# 采集所有Topic
- query: type=Broker,brokerName=*,destinationType=Topic,destinationName=*
  attributes:
    - AlwaysRetroactive
    - AverageBlockedTime
    - AverageEnqueueTime
    # 保留你需要的其他属性

# 采集所有Queue
- query: type=Broker,brokerName=*,destinationType=Queue,destinationName=*
  attributes:
    - ConsumerCount
    - DequeueCount
    - EnqueueCount
    # 保留你需要的其他属性

调整代理的采集实例限制

New Relic基础设施代理默认会限制单个JMX查询返回的实例数量,导致部分队列/主题无法被采集。添加max_instances参数设置足够大的值,同时用allow_missing: true避免因个别属性缺失导致采集失败:

- query: type=Broker,brokerName=*,destinationType=Topic,destinationName=*
  max_instances: 100  # 根据实际队列/主题数量调整
  allow_missing: true
  attributes:
    # 属性列表

验证JMX查询有效性

用JMX工具(如jconsole或jmxterm)连接ActiveMQ的JMX端口,确认查询能返回所有目的地实例:

  1. 使用jmxterm连接(替换为你的JMX地址和凭证):
jmxterm -l localhost:1099 -u admin -p admin
  1. 执行查询:
beans type=Broker,brokerName=*,destinationType=Topic,destinationName=*

如果工具能返回所有主题,说明查询逻辑正确,问题出在代理配置;如果工具也只能返回少量实例,需要检查ActiveMQ的JMX暴露配置。

检查ActiveMQ的JMX配置

确保ActiveMQ的activemq.xml中开启了完整的JMX暴露:

  • 确认broker节点设置了useJmx="true"
  • 检查是否存在destinationJMXFilter参数限制了暴露的目的地,若有则移除或调整过滤规则

内容的提问来源于stack exchange,提问作者Kate Baya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:42:43