Keep observations in context
Historical snapshots connect player counts, server metadata, and resource changes over time. The dashboard and alerts draw on the same underlying observations.
PROJECT 02 / MONITORING & AUTOMATION
From public signals to useful context.
A monitoring system for public FiveM server information, combining historical snapshots, change detection, Discord alerts, and a private dashboard.
Observability · Data modelling · Automation
Node.js · TypeScript · SQLite · Discord API · FiveM
01 / THE CHALLENGE
A single snapshot says little about how a server is changing. Useful monitoring needs continuity: collecting observations, comparing them with history, and distinguishing meaningful changes from gaps in visibility.
The system polls public server information, stores historical snapshots in SQLite, and routes selected changes into Discord. A private dashboard makes population trends and configuration changes easier to inspect.
02 / ENGINEERING DECISIONS
Historical snapshots connect player counts, server metadata, and resource changes over time. The dashboard and alerts draw on the same underlying observations.
The system observes public information exposed at polling time. It cannot see private resources or in-game activity, and it treats missing or redacted player data as unavailable.
Change alerts, subscriptions, severity thresholds, and routing controls let a community focus on the events it cares about. Public identifiers are hashed locally rather than stored raw.
03 / WHAT IT BRINGS TOGETHER
THE THREAD THAT RUNS THROUGH IT
The interesting engineering problem is the path from raw observations to information someone can act on, while being honest about what the data cannot show.
Discuss this project ↗