Subscribe MQTT topic and export them to prometheus.
usage: mqtt_topic_exporter --mqtt.server=MQTT.SERVER --mqtt.topic=MQTT.TOPIC [<flags>]
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--web.listen-address=":9981"
Address on which to expose metrics and web interface.
--web.telemetry-path="/metrics"
Path under which to expose metrics.
--mqtt.retain-time="1m" Retain duration for a topic
--mqtt.server=MQTT.SERVER MQTT Server address URI mqtts://user:pass@host:port
--mqtt.topic=MQTT.TOPIC Watch MQTT topic
--log.level="info" Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]
--log.format="logger:stderr"
Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true"
--version Show application version.
Sample output:
curl -s http://127.0.0.1:9981/metrics | grep mqtt
# HELP mqtt_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which mqtt_exporter was built.
# TYPE mqtt_exporter_build_info gauge
mqtt_exporter_build_info{branch="",goversion="go1.10.3",revision="",version=""} 1
# HELP mqtt_topic mqtt topic gauge
# TYPE mqtt_topic gauge
mqtt_topic{topic="/home/sensor/co2"} 462
mqtt_topic{topic="/home/sensor/temp"} 31.171875
This repository supports VS Code Dev Containers.
- Open this repository in VS Code.
- Open the command palette (
F1orCtrl+Shift+P) and selectDev Containers: Reopen in Container.
This will automatically build and start the development container environment.
make buildOr
go build -o mqtt_topic_exporter main.godocker-compose up -d mosquittomake runOr
./mqtt_topic_exporter --mqtt.server=mqtt://mosquitto:1883 --mqtt.topic=/test/topicIn another terminal, run:
curl -s http://localhost:9981/metrics | grep mqttA sample Go program is included at cmd/pubtest/main.go for publishing test messages to the MQTT broker.
Run the publisher directly with go run:
go run cmd/pubtest/main.go /test/topic 42.5This will publish a test message to the MQTT broker at mqtt://mosquitto:1883.
You can modify the command line arguments to change topics, payloads, or broker address as needed.
- The MQTT broker configuration file is located at
.devcontainer/mosquitto.conf. - From inside the Dev Container, you can connect to the broker using
mqtt://mosquitto:1883.