如何获取RabbitMQ队列确认统计信息
我正在使用pika这个库,想知道怎么获取确认统计数据。
我已经安装了管理插件,可以通过它查看确认统计数据,但我想直接通过像pika这样的库来访问这些数据。
1 个回答
10
编辑:
今天我会使用内置的 Prometheus 插件 来收集详细的统计数据。
如果你想获取数据,可以直接在 Python 中使用一个 HTTP 客户端,通过 RabbitMQ 管理 API 来获取你需要的数据。
这个 API 使用起来相对简单,不过这个特定功能的文档可能不是特别完善。不过,你可以很容易地找到你需要的信息,并用它来生成你想要的数据。
你可以这样调用队列信息:
http://127.0.0.1:15672/api/queues/%2F/Test
只需把 Test
替换成你想要收集数据的队列名称。
然后你可以添加一些选项来获取更详细的信息:
?lengths_age=60&lengths_incr=5&msg_rates_age=60&msg_rates_incr=5
例如
http://127.0.0.1:15672/api/queues/%2F/queue_name?lengths_age=60&lengths_incr=5&msg_rates_age=60&msg_rates_incr=5
输出结果大概是这样的:
{"memory": 21816,
"message_stats":
{
"publish": 4,
"publish_details":
{
"rate": 0.0,
"samples": [....]
},
"messages": 4,
"messages_details":
{
"rate": 0.0,
"samples": [....],
"avg_rate": 0.0,
"avg": 4.0},
"messages_ready": 4,
"messages_ready_details": {
"rate": 0.0,
"samples": [....],
"avg_rate": 0.0,
"avg": 4.0
},
.....
如果你想查看 RabbitMQ 服务器的整体情况,而不是某个特定的队列,可以使用这个 API 调用。
http://127.0.0.1:15672/api/overview?lengths_age=60&lengths_incr=5&msg_rates_age=60&msg_rates_incr=5
关于这个 API 的一般文档可以在 这里 找到。