Add ping and TCP monitor types

Adds ping and TCP monitor creation APIs, worker collectors, network checks UI, dashboard monitor status support, and progress documentation.
This commit is contained in:
Keith Smith
2026-05-23 15:01:57 -06:00
parent 597ff18c2a
commit 16932957b2
13 changed files with 577 additions and 35 deletions
+4 -1
View File
@@ -30,6 +30,7 @@ OrbitalWard is a secure monitoring appliance focused on the v0.1 vertical slice:
- Website monitor create/edit/delete flow.
- HTTP status and expected-text checks.
- Optional TLS certificate expiry checks for HTTPS monitors.
- Ping and TCP port monitor create/edit/delete flow.
- Alert rules, incident opening/resolution, acknowledge, silence, and webhook notifications.
- Generic webhook, Mattermost, and Zoom Team Chat notification channels.
- Saved webhook URLs encrypted at rest and not returned to the UI.
@@ -43,6 +44,8 @@ After the rename and TLS expiry work, these checks passed in Docker:
- `docker compose -f docker-compose.dev.yml exec -T frontend npm run typecheck`
- `docker compose -f docker-compose.dev.yml exec -T worker python -m compileall app`
- Backend health returned `{"status":"ok","service":"orbitalward-backend"}`.
- Direct worker probes for TCP and ICMP ping checks passed inside the Docker network.
- API probe created and deleted one ping monitor and one TCP monitor successfully.
The final Compose project uses `orbitalward-*` containers, images, network, and volumes.
@@ -72,7 +75,7 @@ Issue source docs:
- `docs/progress.md`
- `docs/roadmap.md`
Current completed items include TLS expiry monitor support, HTTP/website checks, basic alert evaluation, incident actions, and webhook notification channels. Next recommended work starts with ping and TCP port monitors.
Current completed items include TLS expiry monitor support, HTTP/website checks, ping and TCP port checks, basic alert evaluation, incident actions, and webhook notification channels. The next recommended implementation issue is alert rule editing UI.
## Guardrails
+1
View File
@@ -57,6 +57,7 @@ Completed in the initial scaffold:
- React frontend skeleton with authenticated layout.
- Worker skeleton with working HTTP website monitor polling.
- Website monitor create/edit/delete UI.
- Ping and TCP port monitor collectors and UI.
- Basic alert evaluation, incidents, acknowledge, and silence actions.
- Generic webhook, Mattermost, and Zoom Team Chat channel foundations.
- Encrypted webhook URL storage.
+15 -10
View File
@@ -24,6 +24,13 @@ Implemented website-monitor slice:
- Incidents can be acknowledged and silenced from the UI.
- Deleting a monitor resolves any open incidents tied to that monitor.
Implemented network-monitor slice:
- Create, edit, delete ping and TCP port monitors from the UI.
- Worker performs ICMP ping checks and TCP connection checks.
- Ping and TCP monitors use the same alert rule, incident, recovery, and notification flow as website monitors.
- Dashboard monitor status includes website, ping, and TCP monitors.
Implemented notification slice:
- Create, edit, test, and delete notification channels from the UI.
@@ -43,7 +50,6 @@ Implemented notification slice:
- Alert rule editing UI is not implemented.
- Notification routing/policies are not implemented; all enabled webhook channels receive incident notifications.
- Email/SMTP notifications are not implemented yet.
- Ping and TCP checks are not implemented yet.
- Graphing exists only as placeholders; metric visualization is not implemented.
- Worker scheduling is simple polling, not a Redis queue yet.
- Tests are still minimal and need meaningful backend/worker/frontend coverage.
@@ -51,15 +57,14 @@ Implemented notification slice:
## Recommended Next Work
1. Add ping and TCP port monitors.
2. Add alert rule editing UI and richer alert conditions.
3. Add notification policy/routing controls.
4. Add email/SMTP notification channel.
5. Add audit event writes for auth, monitor, credential, notification, and incident actions.
6. Build credential vault UI with masked secret handling.
7. Add user administration UI.
8. Add graphs for website response time and monitor status history.
9. Add backend and worker tests for the website-monitor and notification flows.
1. Add alert rule editing UI and richer alert conditions.
2. Add notification policy/routing controls.
3. Add email/SMTP notification channel.
4. Add audit event writes for auth, monitor, credential, notification, and incident actions.
5. Build credential vault UI with masked secret handling.
6. Add user administration UI.
7. Add graphs for website response time and monitor status history.
8. Add backend and worker tests for the website-monitor and notification flows.
## Operational Notes