Case study · 2026
Monittore
Monitoring and operations software for personal projects and infrastructure, spanning a web application, independent worker, CLI and remote server agent.
- Contribution
- Product, engineering and operation
- Status
- In use
- Scope
- Projects and servers · Worker and remote agent · PostgreSQL · Web application and CLI · Alerts and external watchdog
- Source
- Private
Context
Personal projects were running across different environments, but understanding their state required checking each one separately. Monittore started as a way to make that operational picture legible from one place.
What I built
I defined the product scope and implemented the web application, independent checking worker, command-line interface, remote server agent, persistence and deployment workflow. The case study focuses on the boundaries between those parts rather than on private source code.
Evidence and limits
The diagrams on this page are recreated from confirmed behaviour. They intentionally omit production identifiers and exact topology. The system is in active use, while automated integration coverage and several hardening tasks remain incomplete.
System overview
- Projects and servers
- Worker and remote agent
- PostgreSQL
- Web application and CLI
- Alerts and external watchdog
Three decisions worth discussing
Independent monitoring
The worker is not coupled to web availability.
Time-based rollups
Recent detail and long-range history coexist without retaining every raw point forever.
External watchdog
The monitor itself has a check outside its own failure boundary.
From problem to evidence
- 1
ProblemUnderstanding the state of several projects required checking each environment separately.
- 2
ConstraintMonitoring could not depend on the same web surface and failure boundary it was meant to observe.
- 3
DecisionSeparate the worker, web application and external watchdog, then retain history through time-based rollups.
- 4
EvidenceThe web application, worker, CLI and remote agent operate together in active use.
Technical notes
Scheduler, jitter and alert transitionsOpen +
Checks are distributed in time and alerts are emitted on state transitions to reduce synchronized load and notification noise.
Heartbeat and rollup modelOpen +
Raw heartbeats support recent diagnosis while minute, hourly and daily aggregates preserve longer-range trends.
Failure boundaries and current limitsOpen +
The worker, web surface and watchdog are separated, but integration coverage and operational hardening remain active work.
Current limitations
- Automated coverage is still limited across component boundaries.
- Tenant isolation and agent-metric persistence require further hardening.