zu bekommen Gibt es eine Möglichkeit, um die Größe (Restnachrichten) einer Warteschlange in Rabbitmq mit einem einfachen Curl zu bekommen?Curl, um Rabbitmq Warteschlange Größe
So etwas wie curl -xget http://host:1234/api/queue/test/stats
Danke
zu bekommen Gibt es eine Möglichkeit, um die Größe (Restnachrichten) einer Warteschlange in Rabbitmq mit einem einfachen Curl zu bekommen?Curl, um Rabbitmq Warteschlange Größe
So etwas wie curl -xget http://host:1234/api/queue/test/stats
Danke
Schließlich habe ich den Trick mit den folgenden:
curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g'
Verwenden HTTP API von Management Plugin.
Sieht aus, Sie brauchen die /api/queues/(vhost)/(name)
eins. Der Ausgang ist in plain json, so dass Sie nicht messages
Feld (und damit verbunden) verpassen.
S.S .: Hier sind einige Details über Statistiken Daten - http://hg.rabbitmq.com/rabbitmq-management/raw-file/86f7d33a6284/priv/www/doc/stats.html, weil der Link in der Dokumentation gebrochen ist.
curl -u login:password http://localhost:15672/api/queues | sed 's/,/\n/g' | grep '"messages"\:'
RabbitMQ v3.3.4 PHP-Bibliothek basiert auf HTTP api.
So viel wie ich Hacky sed Einzeiler lieben das ist wahrscheinlich die sauberste Lösung:
curl -s -u <user>:<password> http://<host>:<port>/api/queues/<virtual-host>/<queue> | jq .messages
Alles, was wie 'sed sieht | grep | sed' sollte wohl refaktoriert werden. Ich würde für "Curl ..." gehen sed -n 's /.* "messages:" * \ ([^] * \). */\ 1/p'', aber YMMV. Wenn die Ausgabe richtig ist, JSON, '... | jq -r .messages' ist einfacher und lesbarer. (Nicht an einem Ort, wo ich testen kann.) – tripleee
Auch die Option 'curl -i' scheint ziemlich nutzlos zu sein, wenn Sie die Header trotzdem wegwerfen. Ich wurde von der Anforderung gestolpert, um den vhost-Parameter zu programmieren; 'curl -s -u Gast: Gast http: // localhost: 55672/api/Warteschlangen /% 2F/Warteschlangenname | grep -o '"messages": [0-9] *' 'funktioniert für mich. – tripleee