Overview
Interactive architecture diagram showing all mipo components and their real-time health status. Each node represents a container or external service. Click any node to navigate to its detailed health page. Connection lines animate when data is flowing and turn solid when degraded.
Fields & Columns
| Name | Description |
|---|---|
| Backup | pg_dump cron service that backs up all three databases |
| S3 | Cloud storage node, only visible when S3 remote backup is configured |
| Config | PostgreSQL database for identity, configuration, and audit events |
| Results | TimescaleDB database for scan results and state changes |
| Jobs | PostgreSQL database for scan job orchestration |
| Manager | User-facing API, GUI, and admin functions on port 3000 |
| Ingest 1 / Ingest 2 | Scanner API nodes handling heartbeats, job dispatch, and results on port 3001 |
| Dispatcher | Scan orchestration service with no HTTP API |
| Gateway | Traefik reverse proxy for TLS termination and path-based routing |
| DNS / HTTPS indicators | Public DNS and HTTPS certificate status for the configured FQDN |
| Scanner nodes | Registered scanners shown with their current status (active, pending, offline, disabled) |
How To
Diagnose a component failure
- Look for red (unhealthy) nodes in the diagram
- Click the red node to navigate to its detailed health page
- Review the specific error messages and metrics on the detail page
Check backup health from the overview
- Navigate to Health > Overview.
- Look for the backup status indicator in the infrastructure section.
- Click the indicator to navigate to Admin > Backups for detailed scheduling.
Gotchas
- Animated connection lines indicate active data flow; solid lines mean the connection is inactive or degraded.
- The Dispatcher node is not clickable because it has no HTTP API. To troubleshoot dispatcher issues, check its container logs with `docker compose logs dispatcher`.
- DNS and HTTPS indicators reflect the public URL configured in Admin > Settings — they will show unknown if no public URL is set.
- Health evaluator thresholds: scanner load ratio 0.8, memory minimum ratio 0.10, DB sessions maximum ratio 0.80, long query threshold 60 seconds, auth failure limit 10 in 5-minute window, TLS certificate expiry warning at 30 days.
API Calls (7)
| Method | Path | Description |
|---|---|---|
| GET | /api/health/services/manager | Manager service health and metrics |
| GET | /api/health/services/ingest | Ingest node statuses and metrics |
| GET | /api/health/infra/db-status | Database connection pool health |
| GET | /api/health/infra/proxy-status | Traefik reverse proxy metrics |
| GET | /api/scanners | Registered scanners and their statuses |
| GET | /api/health/internet-status | Public DNS and HTTPS reachability |
| GET | /api/health/infra/backup | Backup system health and S3 status |
Related Pages
- Alarms — Active system alarms detected by built-in fault rules
- Manager — Detailed health metrics for the manager service
- Ingest — Per-node health for ingest-1 and ingest-2
- Database Status — Connection pool metrics for all databases
- Proxy Status — Traefik router, service, and middleware counts
- Scanners — Scanner connectivity and heartbeat status
- Backup — Backup schedule, storage, and trigger history
- Maintenance — Centralized container restart and maintenance operations (wrench icons link here)