How mikky00b/watchdog works
WATCHDOG is a team-oriented uptime and heartbeat monitoring platform. Users register and verify an account, create an organization and optional clients, configure monitors and alert channels, then view incidents, status pages, and monthly reliability reports. The monitoring runtime checks endpoints and heartbeats, evaluates results, and produces incident alerts that are queued for channel delivery. The graph includes the documented product branches; unsampled implementations are represented by their existing module paths, and their relationships are shown only where the README or indexed source references support them.
Main entry points: database.py PostgreSQL data · main.py FastAPI application · scheduler.py Monitor scheduler · auth_service.py Identity service
Components 25
User experience
- Web dashboard
frontend/src/ui/App.tsx - API client
frontend/src/services.ts
API and identity
- FastAPI application
src/monitoring/main.py - Authentication API
src/monitoring/api/v1/auth.py - Identity service
src/monitoring/services/auth_service.py - Organization and client APIs
src/monitoring/api/v1/organizations.py - Monitor and check APIs
src/monitoring/api/v1/monitors.py - Alert channel API
src/monitoring/api/v1/alert_channels.py - Reports API
src/monitoring/api/v1/reports.py - Status page API
src/monitoring/api/v1/status_pages.py
Monitoring runtime
- Monitor scheduler
src/monitoring/workers/scheduler.py - Check execution
src/monitoring/services/checker_service.py - Rule evaluation
src/monitoring/services/rule_engine.py - Monitor management
src/monitoring/services/monitor_service.py
Incident and alerting
- Incident handling
src/monitoring/services/incident_service.py - Alert management
src/monitoring/services/alert_service.py - Notification delivery
src/monitoring/services/notification_service.py - Notification worker
src/monitoring/workers/notification_worker.py - Email and Telegram senders
src/monitoring/alerting - Telegram integration
src/monitoring/api/v1/integrations/telegram.py
Domain data
- Reliability reports
src/monitoring/services/report_service.py - Status page service
src/monitoring/services/status_page_service.py - PostgreSQL data
src/monitoring/database.py - Domain records
src/monitoring/models
Other components
- Team user
Connections 32
- Team user → Web dashboard: uses
README.md - Web dashboard → API client: requests through
frontend/src/ui/App.tsx - API client → FastAPI application: calls API
frontend/src/services.ts - FastAPI application → Authentication API: routes to
src/monitoring/main.py - FastAPI application → Organization and client APIs: routes to
src/monitoring/main.py - FastAPI application → Monitor and check APIs: routes to
src/monitoring/main.py - FastAPI application → Alert channel API: routes to
src/monitoring/main.py - FastAPI application → Reports API: routes to
src/monitoring/main.py - FastAPI application → Status page API: routes to
src/monitoring/main.py - Authentication API → Identity service: delegates to
src/monitoring/api/v1/auth.py - Identity service → PostgreSQL data: reads and writes
src/monitoring/services/auth_service.py - Identity service → Email and Telegram senders: sends auth email
src/monitoring/services/auth_service.py - Monitor and check APIs → Monitor management: delegates to
src/monitoring/services/monitor_service.py - Monitor management → Check execution: runs manual checks
src/monitoring/services/monitor_service.py - Monitor scheduler → Check execution: runs scheduled checks
src/monitoring/workers/scheduler.py - Monitor scheduler → Rule evaluation: evaluates results
src/monitoring/workers/scheduler.py - Monitor scheduler → Incident handling: handles incidents
src/monitoring/workers/scheduler.py - Monitor scheduler → Alert management: creates alerts
src/monitoring/workers/scheduler.py - Check execution → PostgreSQL data: stores check results
src/monitoring/services/checker_service.py - Rule evaluation → PostgreSQL data: reads check history
src/monitoring/services/rule_engine.py - Incident handling → PostgreSQL data: stores incidents
- Alert management → PostgreSQL data: stores alerts
src/monitoring/services/alert_service.py - Alert management → Notification delivery: queues notifications
README.md - Notification worker → Notification delivery: sends pending events
src/monitoring/workers/notification_worker.py - Notification delivery → Email and Telegram senders: dispatches channels
src/monitoring/services/notification_service.py - Email and Telegram senders → Team user: delivers alerts
README.md - Telegram integration → PostgreSQL data: uses session
- Reports API → Reliability reports: generates reports
- Reliability reports → PostgreSQL data: reads monitoring history
src/monitoring/services/report_service.py - Status page API → Status page service: serves status pages
- Status page service → PostgreSQL data: reads status data
- PostgreSQL data → Domain records: persists records
src/monitoring/database.py