Like as MQTT2RRD and it's forks, MQTToRRD create round robin database files from MQTT messages.
Tool daemon is based on poho-mqtt
and python-daemon
packages. All
dependencies are listed in requirements.txt
file. As Python 2.x
is deprecated, tool is write for Python 3.5 or more only. For example
signal.Signals
class is use.
usage: $(prog)s [options] command Create round robind database files form MQTT. positional arguments: command Daemon action (start|stop|restart|status) optional arguments: -h, --help show this help message and exit -c <file>, --config <file> Path to config file. -f, --foreground Run as script on foreground
~# pip3 install mqttorrd
data_dir: | Directory to store round robin database files. Default value is
/var/lib/mqttorrd . |
---|---|
pid_file: | Path of file with pid. Default value is /var/run/mqttorrd.pid . |
user: | Daemon user, default nobody . |
group: | Daemon group, default nogroup . |
Data directory must be writer with user or group as pid file. Each value from
MQTT broker is store to it's rrd file with path from topic. For example:
/var/lib/mqttorrd/garden/pool/temperature.rrd
.
handler: | Python logging handler. Possible values are file or syslog .
When tool is run at foreground, stderr handler is use. On UNIX
like systems, WatchedFileHandler
is used. Defaults to syslog . |
---|---|
syslog: | Syslog connection, /dev/log by default. LOG_DAEMON facility
is used. |
file: | Path to log file if file handler is used. Defaults to
/var/log/mqttorrd.log . |
level: | One of Python logging level: DEBUG, INFO, WARNING, ERROR,
CRITICAL . Default value is ERROR . |
format: | Logging format. Default value is
%(asctime)s %(levelname)s: %(name)s: %(message)s "{%(funcName)s():%(lineno)d} . |
client_id: | MQTT client id. If is not defined, it is generate automatically. |
---|---|
hostname: | Broker hostname, localhost by default. |
port: | Broker port, 1883 is allways default. |
keepalive: | The keepalive timeout value for the client. Defaults to 60
seconds. |
tls: | TLS connection, default False . |
ca_certs: | Path to the Certificate Authority certificate. If is not set, system certs path is use. |
certfile: | Client public certificate file. |
keyfile: | Client primary key file. |
username: | Client username |
password: | Client password |
subscriptions: | Coma separated topics to subscribe. Default value is /# . |
For any topics could be defined own RRD parameters. MQTT characters like #
and +
could be use. If new topic message was received,first definition,
which is matched is used. If database file is exist yet, only value are update.
For more information see https://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html.
step: | Round Robin Database step. Defaults to 60 seconds. |
---|---|
DS: | Data source definition. Default value is
DS:{topic}:GAUGE:120:U:U , where {topic} is replaced with
file name as last topics part. |
RRA: | Value archive definition. Default value is |
RRA:AVERAGE:0.5:2:30, RRA:AVERAGE:0.5:5:288, RRA:AVERAGE:0.5:30:336, RRA:AVERAGE:0.5:60:1488, RRA:AVERAGE:0.5:720:744, RRA:AVERAGE:0.5:1440:265