fedmsg-logger1
Simply emit messages from the command-line to the fedmsg bus
Usage
fedmsg-logger [--message
LOGGER_MESSAGE]
[--json-input]
[--topic
TOPIC]
[--modname
MODNAME]
[--cert-prefix
CERT_PREFIX]
[<common
fedmsg
options>]
fedmsg-logger [{-h | --help}]
Overview
fedmsg-logger is a simple command-line utility to send messages to the fedmsg bus. It is an ephemeral command, that doesn't bind a 0mq endpoint directly. It sends its messages to a fedmsg-relay(1) daemon that binds a persistent endpoint that the outside world can subscribe to. If the fedmsg-relay(1) service is not running at the address specified in the config, then fedmsg-logger will hang until that service becomes available.
If --message is not specified, this command accepts messages from stdin.
Options
-
-h, --help -
Print an help message and exit
-
--message LOGGER_MESSAGE -
The message to send.
-
--json-input -
Take each line of input as JSON.
-
--topic TOPIC -
The topic to which the messages are sent. Defaults to log if unset.
-
--modname MODNAME -
The module name to which the messages are sent. Defaults to logger if unset.
-
--cert-prefix CERT_PREFIX -
Specify a different cert from /etc/pki/fedmsg
Options
-
--io-threads IO_THREADS -
Number of io threads for 0mq to use
-
--topic-prefix TOPIC_PREFIX -
Prefix for the topic of each message sent.
-
--post-init-sleep POST_INIT_SLEEP -
Number of seconds to sleep after initializing.
-
--config-filename CONFIG_FILENAME -
Config file to use.
-
--print-config -
Simply print out the configuration and exit. No action taken.
-
--timeout TIMEOUT -
Timeout in seconds for any blocking zmq operations.
-
--high-water-mark HIGH_WATER_MARK -
Limit on the number of messages in the queue before blocking.
-
--linger ZMQ_LINGER -
Number of milliseconds to wait before timing out connections.
Topic construction
The full topic to which the messages are sent is constructed from the topic_prefix and environment set in the fedmsg configuration, and the --topic TOPIC and --modname MODNAME options this way:
-
<topic_prefix>.<environment>.MODNAME.TOPIC
Caveats
Note that when using --json-input, you must send valid JSON, including the use of double quotes as opposed to single quotes:
|
{"a": 1} is valid JSON. |
|
|
{'a': 1} is invalid JSON. |
Examples
Send a message from standard input in JSON format:
echo '{"a": 1}' | fedmsg-logger --json-input
Send a message to the git.repo.update topic
echo "Hai there." | fedmsg-logger --modname=git --topic=repo.update
Send a simple message:
fedmsg-logger --message="This is a message."
Send a JSON-format message:
fedmsg-logger --message='{"a": 1}' --json-input