É possível visualizar o conteúdo da mensagem RabbitMQ diretamente da linha de comando?
sudo rabbitmqctl list_queues
lista as filas.
Existe algum comando como sudo rabbitmqctl list_queue_messages <queue_name>
?
É possível visualizar o conteúdo da mensagem RabbitMQ diretamente da linha de comando?
sudo rabbitmqctl list_queues
lista as filas.
Existe algum comando como sudo rabbitmqctl list_queue_messages <queue_name>
?
Respostas:
Você deve habilitar o plugin de gerenciamento.
rabbitmq-plugins enable rabbitmq_management
Veja aqui:
http://www.rabbitmq.com/plugins.html
E aqui para os detalhes de gestão.
http://www.rabbitmq.com/management.html
Finalmente, uma vez configurado, você precisará seguir as instruções abaixo para instalar e usar a ferramenta rabbitmqadmin. Que pode ser usado para interagir totalmente com o sistema. http://www.rabbitmq.com/management-cli.html
Por exemplo:
rabbitmqadmin get queue=<QueueName> requeue=false
lhe dará a primeira mensagem fora da fila.
requeue=false
e fazerrabbitmqadmin get queue=<QueueName>
Aqui estão os comandos que uso para obter o conteúdo da fila:
RabbitMQ versão 3.1.5 no Fedora linux usando https://www.rabbitmq.com/management-cli.html
Aqui estão minhas trocas:
eric@dev ~ $ sudo python rabbitmqadmin list exchanges
+-------+--------------------+---------+-------------+---------+----------+
| vhost | name | type | auto_delete | durable | internal |
+-------+--------------------+---------+-------------+---------+----------+
| / | | direct | False | True | False |
| / | kowalski | topic | False | True | False |
+-------+--------------------+---------+-------------+---------+----------+
Aqui está minha fila:
eric@dev ~ $ sudo python rabbitmqadmin list queues
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
| vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
| / | myqueue | False | 0 | True | | 2014-09-10 13:32:18 | 13760 | 0 | 0 | 0 |rabbit@ip-11-1-52-125| | running |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
Enfie alguns itens na minha fila:
curl -i -u guest:guest http://localhost:15672/api/exchanges/%2f/kowalski/publish -d '{"properties":{},"routing_key":"abcxyz","payload":"foobar","payload_encoding":"string"}'
HTTP/1.1 200 OK
Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)
Date: Wed, 10 Sep 2014 17:46:59 GMT
content-type: application/json
Content-Length: 15
Cache-Control: no-cache
{"routed":true}
RabbitMQ ver mensagens na fila:
eric@dev ~ $ sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
| routing_key | exchange | message_count | payload | payload_bytes | payload_encoding | properties | redelivered |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
| abcxyz | kowalski | 10 | foobar | 6 | string | | True |
| abcxyz | kowalski | 9 | {'testdata':'test'} | 19 | string | | True |
| abcxyz | kowalski | 8 | {'mykey':'myvalue'} | 19 | string | | True |
| abcxyz | kowalski | 7 | {'mykey':'myvalue'} | 19 | string | | True |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
para ver as mensagens ou retirar da fila as mensagens do final e, em seguida, recolocá-las na frente. Existe uma maneira de apenas ver as mensagens em vez de retirá-las da fila.
rabbitmqadmin
conectar à API baseada na web, o sudo é necessário aqui?
requeue=True
Eu escrevi rabbitmq-dump-queue que permite despejar mensagens de uma fila RabbitMQ para arquivos locais e enfileirar novamente as mensagens em sua ordem original.
Exemplo de uso (para despejar as primeiras 50 mensagens da fila incoming_1
):
rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp
você pode usar a API RabbitMQ para obter contagens ou mensagens:
/api/queues/vhost/name/get
Receba mensagens de uma fila. (Este não é um HTTP GET, pois irá alterar o estado da fila.) Você deve postar um corpo parecido com:
{"count":5,"requeue":true,"encoding":"auto","truncate":50000}
contagem controla o número máximo de mensagens a serem obtidas. Você pode receber menos mensagens do que isso se a fila não puder fornecê-las imediatamente.
requeue determina se as mensagens serão removidas da fila. Se a recolocação for verdadeira, eles serão recolocados na fila - mas o sinalizador de reenvio será definido. a codificação deve ser "auto" (nesse caso, a carga útil será retornada como uma string se for UTF-8 válido e codificada em base64 de outra forma) ou "base64" (nesse caso, a carga útil será sempre codificada em base64). Se truncar estiver presente, ele truncará a carga útil da mensagem se for maior que o tamanho fornecido (em bytes). truncar é opcional; todas as outras chaves são obrigatórias.
Observe que os caminhos de publicação / obtenção na API HTTP destinam-se a injetar mensagens de teste, diagnósticos, etc. - eles não implementam entrega confiável e, portanto, devem ser tratados como uma ferramenta de administrador de sistema, em vez de uma API geral para mensagens.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
um pouco tarde para isso, mas sim rabbitmq tem um rastreador integrado que permite que você veja as mensagens de entrada em um log. Quando ativado, você pode apenastail -f /var/tmp/rabbitmq-tracing/.log
(no mac) assistir as mensagens.
a descrição detalhada está aqui http://www.mikeobrien.net/blog/tracing-rabbitmq-messages