TimescaleAndrew Stebbins6 min readintermediate
How Meshtastic Metrics Exporter Turned Eight Prometheus Queries Into One with Tiger Data
Summary
A Python exporter reads Meshtastic mesh telemetry from MQTT and writes it directly into a TimescaleDB‑enabled PostgreSQL instance, replacing a Prometheus setup that hit ~0.5 M series for 10 k nodes. The single database lets Grafana dashboards join node metadata with eight time‑series tables in one query, eliminates scrape‑budget limits, and uses native retention/compression (14‑day compression, 3…
- Prometheus cardinality blew up at ~10 k nodes (≈55 metrics/node → ~500 k series) and exceeded the 10 s scrape budget.
- Moving to TimescaleDB (PostgreSQL 16 + extension) let the exporter write data directly, removing the scrape step and consolidating metrics and metadata in one store.
- SQL joins replace eight separate Prometheus queries, enabling a single node‑drill‑down view that correlates hardware, role, telemetry, position, power, etc.
- Retention/compression is handled declaratively: daily chunks, compression after 14 days, automatic drop after 30 days.
Shows a pragmatic path for high‑cardinality IoT/mesh monitoring workloads to avoid Prometheus limits by leveraging TimescaleDB’s hypertables and native SQL, while keeping ops simple for community‑run networks.
6/10




