如何获取 RabbitMQ 队列确认统计数据

问题描述 投票:0回答:1

我正在使用 pika,想知道如何获取确认统计数据。

我已经安装了管理插件,从中可以看到确认统计信息,但我想直接通过库访问它;比如鼠兔。

python rabbitmq pika
1个回答
11
投票

编辑:

今天我将使用内置的 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 的一般文档可在此处获取。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.