我有类似的要求,但我找到了比投票更好的方法。 docs 表示,如果您在请求中使用特殊参数,您可能会通过 api 获取原始样本。
例如,在您的情况下,如果您对就绪状态的消息感兴趣,您可以向您的队列询问队列长度的历史记录,例如过去 60 秒,每 1 秒采样一次(注意 15672 是默认端口被rabbitmq_management使用):
http://rabbitHost:15672/api/queues/vhost/queue?lengths_age=60&lengths_incr=1
对于默认 vhost=/ 它将是:
http://rabbitHost:15672/api/queues/%2F/queue?lengths_age=60&lengths_incr=1
然后在结果 json 中会有一些额外的 _details 对象,如下所示:
"messages_ready_details": {
"avg": 8.524590163934427,
"avg_rate": 0.08333333333333333,
"samples": [{
"timestamp": 1532699694000,
"sample": 5
}, {
"timestamp": 1532699693000,
"sample": 11
},
<... more samples ...>
],
"rate": -6.0
},
"messages_ready": 5,
然后,您可以根据这些原始数据进行所需的任何统计。
如果您在
中使用不同的参数,则会出现其他原始数据样本
会出现什么采样?需要什么参数才能出现?
发送和接收的消息 msg_rates_age / msg_rates_incr
发送和接收的字节数 data_rates_age / data_rates_incr
队列长度 lengths_age / lengths_incr
节点统计信息(例如文件描述符、可用磁盘空间) node_stats_age / node_stats_incr