Interactive tools for working with RabbitMQ. Under development, partly as a learning project.
Batch usage, with the jq
JSON filter and pretty-printer:
% cat > batch.rmqtail
add foo
bind foo amq.topic foo.bar
bind foo amq.topic bar.baz
tail foo json
^D
% rmqtail -b batch.rmqtail | jq .message
{
"message": "foo"
}
{
"message": "bar"
}
^C
%
Inline batch usage:
% rmqtail -e "tap foo amq.topic foo.* json"
Interactive usage (soon moving to rmqsh):
% rmqtail
> add foo
added
> bind foo amq.topic foo.bar
bound
> bind foo amq.topic foo.bar.baz
bound
> unbind foo amq.topic foo.bar
unbound
> list
Queue "foo"
> drain foo default
[messages print to stdout]
drained
add
: Create a named, temporary (exclusive) queue that will be destroyed when the connection is ended.bind QUEUE EXCHANGE ROUTINGKEY
: Bind the queue to the named exchange with the given routing key.unbind QUEUE EXCHANGE ROUTINGKEY
: Unbind the queue.list
: List created queues.drain QUEUE SINK
: Consume all messages currently on QUEUE into SINK.text
andjson
sinks are available.tail QUEUE SINK
: Start consuming messages on QUEUE into SINK. Stops with Ctrl-C.tap QUEUE EXCHANGE ROUTINGKEY SINK
:add
,bind
, andtail
combined.
- rename
- rmqcat for publishing
- message formatting
- better interface (batch, command line)
- batch mode -- load a script or scripts on start, or only run a script
-
purge
- better output for
list