Real-Time IoT Dashboards: Building with Grafana and InfluxDB
At 2 a.m., a compressor in a cheese factory outside Leeds began to fail — no bang, no alarm, just a bearing temperature climbing half a degree an hour.
The sensors saw it. Readings landed in a database all night, faithfully. But data in a database is invisible. What saved the batch was a wall-mounted screen in the corridor, where one amber line had bent upwards away from its neighbours. The morning engineer glanced at it on the way to the kettle, frowned, and swapped the bearing before lunch.
IoT projects live or die not on whether they collect data, but on whether anyone can see it at the moment seeing matters. In 2026, the default way to see it is the same pair of tools everywhere: InfluxDB to remember, Grafana to explain. π
The Short Version
The dashboard is usually the last thing built — and the only part anyone ever sees. The mental model that actually works: the database remembers, the dashboard explains.
Every real deployment is the same five-stage pipeline:
- Sensors publish readings (MQTT or HTTP, a few dozen bytes)
- Telegraf — 300+ plugins — collects and forwards them
- InfluxDB 3 stores the time series and answers queries in SQL
- Grafana turns the answers into panels, refreshed every few seconds
- Alert rules watch the queries when no human is looking
Every stage is replaceable, which is exactly why the stack has lasted. And it all runs on a Raspberry Pi in the shed — no cloud required.
InfluxDB 3 — Briefly
InfluxDB spent the early 2020s on a detour: version 2.0 bet on Flux, a query language most users never learned to love. By 2023 Flux was deprecated; in April 2025 came InfluxDB 3 — a ground-up rewrite in Rust on Apache Arrow and Parquet, queried in plain SQL. Faster, better compressed, open formats.
One trade to know: the free Core edition is optimised for recent data — superb as the fast front window of your telemetry, with the Enterprise tier handling long-horizon queries at scale. For dashboards, whose questions are overwhelmingly about now, that trade is usually fine. But make it knowingly — and if a tutorial's query starts with from(bucket:, check the date and keep scrolling.
Designing a Dashboard That Actually Helps
Most dashboards fail because they're organised around the data that exists, not the decisions someone must make. A good one has three layers:
- Top: NOW — a handful of stat tiles with thresholds, readable from across the room
- Middle: TREND — the last hours and days, where a bending line tells its story
- Bottom: EVIDENCE — tables and per-device detail for whoever's already worried
Template variables let one dashboard serve fifty sites. Thresholds mean nobody memorises which number is bad. And the most important alert in any IoT system is the one that fires when a device goes quiet — silent death is how devices actually fail.
The corridor screen that saved the cheese had six panels. Not forty.
The Honest Limitations
Cardinality will find you — tag by anything unbounded and the database slowly strangles itself. Self-hosting is real, ongoing work; "the SD card filled after a year" is a rite of passage. And dashboards rot: renamed devices, retired measurements, stale thresholds. A dashboard is a living document pretending to be furniture — it needs an owner.
π‘ Final Thought
No standards battles here, no protocol wars — just two open-source tools that got good by being used for a decade. The deeper lesson: data you can't see might as well not exist. Every unwatched database is a story going untold — the bearing warming, the battery sagging, the greenhouse overheating on a Sunday.
Build the screen early, not last. Put it where people walk past.
Sensors collect data. Dashboards create attention — and attention is the thing that saves the batch.
→ Full breakdown: the complete pipeline with line protocol, InfluxDB 3's rewrite and what it means for your stack, the three-layer design method, alert tuning, where things stand in 2026, and the builder's checklist: Read the deep dive
Follow for more IoT data-engineering deep dives — part of my ongoing 101-story series. π¬
Comments
Post a Comment