run-and-report.py
Riemann.
Run a command and report toUsage
Usage: run-and-report.py [options] -- command to run
Options:
-h, --help show this help message and exit
--riemann-host=RIEMANN_HOST
The address of Riemann
--riemann-port=RIEMANN_PORT
The port Riemann is running on
--tags=TAGS Optional tags for the event
--ttl=TTL An optional TTL for the event (in seconds)
--states=STATES Describes a mapping of return codes and event states.
e.g. ok:0,1|warn:2,3. Return codes without an explicit
mapping are assumed error. default=ok:0
--service=SERVICE An optional service to the event. Defaults to the
basename of the command that's run
--debug Output the event before it's sent to Riemann.
--metric-from-stdout Use stdout as the metric, rather than elapsed command walltime.
run-and-report.py
will run the command string and report that the event occurred.
The time it took to run the command will be the metric of the event, unless overridden by --stdout
The states argument defines the state of the event based on the return code of the command.
Examples
samn@salmon:~ $ run-and-report.py --states "beauty:2,3|ok:0,1" --debug -- ls /dogs
{'description': '\n STDOUT >>>\n \n <<<\n\n STDERR >>>\n ls: cannot access /dogs: No such file or directory\n\n <<<\n ', 'service': 'ls', 'tags': [], 'metric': 0.0027740001678466797, 'state': 'beauty', 'host': 'salmon', 'attributes': {'command': 'ls /dogs', 'return_code': 2}}
samn@salmon:~ $ run-and-report.py --debug --service 'dogs are cool' --tags dogs,dogges -- 'echo 1 && ls /dogs || echo 2'
{'description': '\n STDOUT >>>\n 1\n2\n\n <<<\n\n STDERR >>>\n ls: cannot access /dogs: No such file or directory\n\n <<<\n ', 'service': 'dogs are cool', 'tags': ['dogs', 'dogges'], 'metric': 0.0026619434356689453, 'state': 'ok', 'host': 'salmon', 'attributes': {'command': 'echo 1 && ls /dogs || echo 2', 'return_code': 0}}
Requirements
bernhard
- Python Riemann client- requires python-protobuf
Is it any good?
sure