C'è un modo per ottenere la dimensione (messaggi rimanenti) di una coda in rabbitmq con un semplice ricciolo?Curl per ottenere la dimensione della coda Rabbitmq
Qualcosa di simile curl -xget http://host:1234/api/queue/test/stats
si
C'è un modo per ottenere la dimensione (messaggi rimanenti) di una coda in rabbitmq con un semplice ricciolo?Curl per ottenere la dimensione della coda Rabbitmq
Qualcosa di simile curl -xget http://host:1234/api/queue/test/stats
si
Finalmente ho fatto il trucco con il seguente:
curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g'
Grazie Usa HTTP API da Management Plugin.
Sembra che sia necessario lo /api/queues/(vhost)/(name)
. L'output è in chiaro, quindi non ti mancherà il campo messages
(e relativo).
P.S .: Ecco alcuni dettagli sui dati delle statistiche - http://hg.rabbitmq.com/rabbitmq-management/raw-file/86f7d33a6284/priv/www/doc/stats.html perché il collegamento nella documentazione è danneggiato.
curl -u login:password http://localhost:15672/api/queues | sed 's/,/\n/g' | grep '"messages"\:'
RabbitMQ biblioteca v3.3.4 PHP basato su HTTP API.
Per quanto io amo hacky sed one-liners questa è probabilmente la soluzione più pulita:
curl -s -u <user>:<password> http://<host>:<port>/api/queues/<virtual-host>/<queue> | jq .messages
Tutto ciò che appare come 'sed | grep | probabilmente dovrebbe essere refactored. Vorrei andare per "arricciare ... | messaggi di sed -n 's /.*: "* \ ([^] * \). */\ 1/p'' ma YMMV. Se l'output è JSON corretto, '... | jq -r .messages' è più semplice e più leggibile. (Non in un posto dove posso testare.) – tripleee
Anche l'opzione 'arricciatura -i' sembra piuttosto inutile se stai lanciando comunque le intestazioni. Sono stato bloccato dal requrement in codice percentuale del parametro vhost; 'curl -s -u guest: guest http: // localhost: 55672/api/queues /% 2F/queuename | grep -o '"messages": [0-9] *' 'funziona per me. – tripleee