Skip to content

capricornusx/meshtastic-mqtt-exporter

Repository files navigation

Meshtastic MQTT Exporter

Build Status codecov Go Report Card

Экспорт телеметрии Meshtastic устройств в Prometheus с интеграцией AlertManager для отправки алертов в LoRa сеть.

Возможности

  • Встроенный MQTT брокер на основе mochi-mqtt
  • Поддержка TLS/QoS/Retention
  • Prometheus метрики: Батарея, температура, влажность, давление, качество сигнала
  • AlertManager интеграция: Отправка алертов в LoRa mesh сеть
  • Персистентность: Сохранение/восстановление метрик между перезапусками

Alt text

Быстрый старт

wget https://github.com/capricornusx/meshtastic-mqtt-exporter/releases/latest/download/mqtt-exporter-linux-amd64

# Запустить
./mqtt-exporter-linux-amd64 --config config.yaml

# Проверить
curl http://localhost:8100/metrics

Конфигурация

Полный пример конфигурации доступен в файле config.yaml.

Документация

Метрики

  • meshtastic_battery_level_percent — Уровень батареи
  • meshtastic_temperature_celsius — Температура
  • meshtastic_humidity_percent — Влажность
  • meshtastic_pressure_hpa — Барометрическое давление
  • meshtastic_rssi_dbm — Мощность сигнала (dBm)
  • meshtastic_snr_db — Отношение сигнал/шум (dB)
  • meshtastic_node_last_seen_timestamp — Время последней активности

Персистентность состояния

Метрики автоматически сохраняются и восстанавливаются между перезапусками (json формат), каждые 5 минут и при завершении работы + восстановление при запуске.

TODO

  • Отделить архитектурно Alertmanager от Exporter
  • добавить MQTT-специфичные метрики (обработано сообщений, uptime, расход памяти т.д.)
  • from_node vs node_id labels
  • синхронизация метрик с meshtastic .proto файлами
  • проверить код на избыточные функции, которые могут быть в стандартной библиотеке
  • настроить gofmt formatter через .golangci.yml
  • Graceful reload config
  • Возможно, пригодится тестовый эндпоинт для alertmanager /alerts/ping с заготовленными сообщениями (direct, broadcast).

Благодарности

Построен с использованием отличного MQTT брокера mochi-mqtt от @mochi-co.

Sponsor this project

Packages

 
 
 

Contributors 2

  •  
  •