Skip to content

Exports data (tasmota status etc.) from mqtt to prometheus

License

Notifications You must be signed in to change notification settings

klaper/mqtt_data_exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MQTT Data Exporter travis ci

What does it do?

Simply it subscribes to MQTT topics and exposes data published there in way that is easy to read with Prometheus

Links

Accepted parameters

web.listen-address:     [Default: ":2112"]                          Address on which to expose metrics and web interface. 
web.telemetry-path:     [Default: "/metrics"]                       Path under which to expose metrics.
mqtt.host:              [Default: "127.0.0.1:1883"]                 Mqtt host address and port.
mqtt.clientId:          [Default: "mqtt_exporter"]                  Mqtt clientId.
mqtt.username:          [Default: ""]                               Mqtt username.
mqtt.password:          [Default: ""]                               Mqtt password
naming.config:          [Default: "/etc/mqtt_exporter/naming.yaml"] File containg naming convertions
metrics.prefix:         [Default: "mqtt_exporter"]                  Prefix for metrics names
log.level:              [Default: 2]                                Log level
cleaner.gauge.timeout:  [Default: 0s]                               Timeout for gauge value cleaner (0 = disabled)

naming conversion file format:

Group1:                             # "group" attribute of metric
  - device: device_name             # device name from mqtt message
                                    # used for matching
                                    # "device" attribute of metrics
    name: friendly_name             # "friendly_name" attribute value
    sensors:				        # list of "sensor_name"
        sensor_name: sensor_alias   # for this device for every readout from "sensor_name" there will be "sensor_alias" label added

log levels parameter values

value meaning
1 DEBUG
2 INFO
3 WARN
4 ERROR
5 OFF

Gauge value cleaner what does it do?

Prevents dangling metrics in prometheus by removing metrics that were not updated for set time. Metrics will be removed within 5 seconds after cleaner.gauge.timeout of not being updated.
Useful when one of your devices disappears.

Running in docker

First build project:

cd $GOPATH/src/github.com/klaper_/mqtt_data_exporter
go build -o bin/mqtt_data_exporter

Build docker image:

docker build -t mqtt_data_exporter .

Run container:

docker run -p 2112:2112 mqtt_data_exporter --mqtt.host "mqtthost.local:1883"

About

Exports data (tasmota status etc.) from mqtt to prometheus

Resources

License

Stars

Watchers

Forks

Packages

No packages published