Built by Richard Applegate · Grafana + Esper MDM
A real-time monitoring and observability stack designed and built by Richard Applegate — tracking a nationwide fleet of Android point-of-sale devices from raw Esper API data to actionable dashboards.
System Architecture
Every device heartbeat flows through a multi-threaded Python sync engine, lands in MariaDB, and surfaces inside Grafana dashboards in near real-time. The entire stack runs on a self-hosted Docker Compose setup inside the warehouse server.
All services — Grafana, MariaDB, Python sync scripts — orchestrated as containers with persistent volumes and auto-restart.
Infrastructureesper_master_sync.py runs 4 threads in parallel: device status, hardware info, factory reset enrichment, and Slack formatting.
Data PipelineStores all device state, app versions, hardware specs, and 180-day historical data with auto-cleanup jobs.
DatabaseDynamic dashboards with repeat panels, multi-value filter variables, and SQL-powered group/version/status dropdowns.
VisualizationReverse proxy with automatic HTTPS certificate management — zero manual cert renewal needed.
SecurityWorkflow automations for daily Slack summaries, anomaly alerts, and device event notifications — all self-hosted.
AutomationGrafana Dashboards
Fleet Intelligence
The flagship dashboard — group health overview, version compliance by store, offline duration buckets, and 30-day historical trend panels for device counts and version rollout progress.
Version Tracking
Dynamic repeat panels — one panel per app version — showing which devices are on each release. Driven by a version_select variable with multi-value filtering.
Event Feed
Live scrolling event log of device activity — boots, app installs, policy changes, and connectivity events — across the entire fleet.
Automation & Alerts
Beyond dashboards, the platform actively notifies the team via Slack — so nothing falls through the cracks overnight.
Every morning at 6 AM Pacific, an N8N workflow queries MariaDB, builds a Block Kit Slack message, and posts fleet health stats to the Engineering channel — before anyone opens Grafana.
runs: 06:00 PT · cronRich formatted Slack messages with device counts, version breakdowns, and offline device lists. Delivered via HTTP webhook — bypassing unreliable Slack node limitations in N8N.
HTTP → webhook · Block KitPython scripts run four parallel threads: master device sync, hardware info sync, factory reset enrichment, and Slack formatter — completing the full cycle in under 2 minutes.
4 threads · 5 min cycleGrafana alert rules watch for devices going offline beyond threshold, version compliance dropping below targets, and suspicious hardware changes across the fleet.
Grafana alerting · webhookWhat We Built
Including non-Joe-OS devices in the authoritative hardware table — every piece of hardware accounted for.
Fleet Intelligence, Joe OS Versions, Esper Event Feed, and Device & App Alerts — all production-ready.
Six months of historical device data with automatic nightly cleanup to keep the database lean and fast.
Four parallel threads complete a full fleet sync in under two minutes, every five minutes around the clock.
Grafana, MariaDB, Python, N8N — everything runs on a self-hosted warehouse server. Zero cloud dependencies.
Carrier detection, warehouse filter, UTC timezone handling, and semver-aware version sorting — every edge case covered.