Workflow monitoring
Execution tracking, a live dashboard and stall alerts for 80+ n8n workflows
With dozens of workflows running on schedules and webhooks, the question “did it actually run?” needs a real answer. I built a monitoring layer on top of n8n.
Components
- Status sync: tracks running, success and failed states for all active workflows and writes them to a MySQL log table.
- Live dashboard: a page with polling, run, retry and stop buttons, an action log per user, and a scan for executions that were never tracked.
- Watchdog: detects stalled runs using two thresholds, sends email alerts, and de-duplicates notifications so one stall means one email.
- Failure logger: a shared n8n error workflow that records the failure reason for multi-trigger chains without splitting them into separate workflows.
Lessons
- Monitoring workflows must not clutter n8n with their own execution data, so they log sparingly.
- Failure-only tracking per trigger chain is far more useful than logging every success.
Stack
n8n, PHP, Python (FastAPI), MySQL.
Memory investigation
I also track the n8n container’s memory use over time with a small sampler, to find out why long-running workflows get unstable and what to change.