A simple MetricQ source that executes a set of commands that return floating point numbers and sends them as metrics.
This source is more a proof of concept than a production-ready thing for the following considerations. There also is no proper error handling yet.
This source allows full code execution for anyone who:
- can manipulate the source configuration, or
- knows the source token and has permission to send to it RabbitMQ in the direct exchange
You should run it with limited privileges only!
The commands are executed synchronously in a single thread. Using slow or many commands may block the whole source and cause connection issues.
Here's an example configuration.
{
"_id": "source-cmd",
"metrics": {
"localhost.random": {
"command": "/bin/bash -c 'echo $RANDOM'",
"unit": "",
"interval": "500ms"
},
"localhost.date": {
"command": "date +%s",
"unit": "s",
"interval": "1s"
},
"localhost.load": {
"command": "bash -c 'uptime | grep -Eo [0-9.]+$'",
"unit": "",
"interval": "2s"
}
}
}
The source supports dynamic reconfiguration. When reconfiguring, all timers are restarted, including existing unchanged metrics.