如何获取RabbitMQ队列确认统计信息

时间:2014-08-07 13:53:31

标签: python rabbitmq pika

我正在使用鼠兔,想知道如何获得确认统计数据。

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

1 个答案:

答案 0 :(得分:9)

如果您想获取数据,您只需在Python中使用HTTP客户端,并使用RabbitMQ Management 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

  • e.g。 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的一般文档here