Overview
The monitor runs scheduled HTTP checks, records each result and calculates useful service-level summaries from the stored history.
Problem
A single request only shows whether a service responds now. Useful monitoring needs repeated checks, durable history and understandable outputs when something fails.
What I built
- Timer-triggered checks with graceful HTTP and timeout error handling.
- Azure Table Storage persistence for check history.
- HTTP endpoints for uptime percentage, average response time and failure counts.
- Structured logs, GitHub Actions deployment and Terraform basics.
Engineering decisions
I separated scheduled collection from read endpoints so monitoring can continue independently of dashboard requests. Each check is stored as a record, allowing summaries to be recalculated rather than locked into one presentation.
What I learned
This project connected application code to cloud operations: scheduled execution, storage design, deployment automation, observability and failure handling all had to work together.
