Skip to content

About

Lightweight service reliability monitor to detect availability and version issues of service endpoints, in a dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

36 Commits

Folders and files

Repository files navigation

Service Reliability Monitor

Periodically checks web service endpoints, recording availability, latency, and version identity while surfacing results on a live dashboard.

Built using:

FastAPI Docker React Material UI

Screenshot 2026-04-16 073024

Quickstart

Build Docker image

For Windows:

docker-compose up --build

Open on browser: http://localhost:8000


List of Monitoring Services

Modifiable configuration file at: backend/services.yaml

View Version Drift

View the version drift by clicking on the drift alert for service:

Screenshot 2026-04-16 073038

Design Overview

Config-driven: Services are defined in services.yaml (name, URL, environment, expected version).

Poller: APScheduler runs an async poll cycle every N seconds (default 30). Each cycle checks all configured services concurrently, writes a CheckResult row per service, then evaluates the alerting threshold.

Trade-offs:

  • The frontend polls the REST API every 15 seconds rather than using WebSockets. This is sufficient for a health dashboard and eliminates connection-management complexity.
  • APScheduler (in-process) was preferred over Celery/Redis because it removes an entire infrastructure dependency for a tool of this scope.
  • Static files are served by FastAPI in Docker (single container) rather than a separate Nginx container. This keeps the compose file minimal.

Infrastructure / Deployment Notes

In production, this would be deployed as two services: the FastAPI container and a managed PostgreSQL instance (RDS). The container image can be built by a CI pipeline (AWS CodePipeline) on every merge to main, tagged with the commit SHA, and pushed to ECR. It would then be deployed by AWS CodeBuild updating the images in ECS Fargate tasks placed within a management VPC. This VPC requires peering connections to both Staging and Production VPCs to ensure network connections to internal endpoints aren't exposed to the public internet.

The app container can run behind an Application Load Balancer with a /api/services/ health path. AWS CloudWatch Synthetics Canary can be setup to check the Application Load Balancer. If the application goes down, CloudWatch will alert the infrastructure team.


Developed by

Author Author

About

Lightweight service reliability monitor to detect availability and version issues of service endpoints, in a dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages