Skip to content

ondratu/MQTToRRD

Repository files navigation

MQTToRRD

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

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

Install

~# pip3 install mqttorrd

Configuration

[daemon]

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.

[logging]

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}.

[mqtt]

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

About

Creating RRD from MQTT

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages