Curl获取Rabbitmq队列大小

Curl获取Rabbitmq队列大小,curl,rabbitmq,Curl,Rabbitmq,有没有一种方法可以通过简单的Curl获得rabbitmq中队列的大小(剩余消息) 类似于curl-xget的东西http://host:1234/api/queue/test/stats 感谢您使用来自的HTTP API 看起来您可能会受益于/api/queues/(vhost)/(name)one。输出是纯json格式的,因此您不会错过消息字段(以及相关字段)。最后,我使用了以下技巧: curl -s -i -u guest:guest http://host:port/api/queues/

有没有一种方法可以通过简单的Curl获得rabbitmq中队列的大小(剩余消息)

类似于
curl-xget的东西http://host:1234/api/queue/test/stats

感谢您使用来自的HTTP API


看起来您可能会受益于
/api/queues/(vhost)/(name)
one。输出是纯json格式的,因此您不会错过
消息
字段(以及相关字段)。

最后,我使用了以下技巧:

curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g'

curl-u登录:密码http://localhost:15672/api/queues |sed's/,/\n/g'| grep'“messages”\:'

基于HTTP api的Rabbitmq v3.3.4 PHP库



尽管我非常喜欢hacky sed one liners,但这可能是最干净的解决方案:

curl -s -u <user>:<password> http://<host>:<port>/api/queues/<virtual-host>/<queue> | jq .messages
curl-s-u:http://:/api/queues/| jq.messages

我理解这是一篇老掉牙的帖子&问题特别指出使用“curl”,但我认为添加“rabbitmqctl list_queues”命令为每个队列提供消息计数可能是有用的

任何看起来像
sed | grep | sed
的东西都应该重构。我会选择
curl…|sed-n's/*“消息:“*\([^]*\)./\1/p'
但YMMV。如果输出是正确的JSON,
…|jq-r.messages
更简单,可读性更强。(不是在一个我可以测试的地方。)另外,如果你无论如何都要扔掉标题,
curl-I
选项似乎是相当无用的。我被要求对vhost参数进行百分比编码的要求绊倒了<代码>curl-s-u guest:guesthttp://localhost:55672/api/queues/%2F/queuename |grep-o的“messages”:[0-9]*'对我有效。如果您恰好使用默认的vhost“/”使用编码版本“/”,即“%2F”,则会断开连接。