Numan Nadeem
All projects

Internal infrastructure tooling · Case study · 4 min read

Smart API Monitor

A monitoring service that watches your APIs on a schedule, keeps the history, and tells you the moment something breaks.

Smart API Monitor is a private build. The application runs on AWS with no public demo.

Client
Internal infrastructure tooling
Year
2025
Role
Full-stack engineer & DevOps
Duration
8 Weeks
Industry
DevOps, Infrastructure
Tools
Next.js, Express, PostgreSQL, AWS, GitHub Actions
  • System design
  • Full-stack development
  • CI/CD infrastructure

At a glance

Challenge

Knowing an API is down is the easy half. The hard half is knowing it was down at 3am, that it has been flaky for two weeks, and that the p95 crept from 180ms to 900ms after a deploy. Teams end up writing throwaway scripts, then maintaining them, then ignoring them.

Solution

A scheduled monitoring service: it probes registered endpoints on a configurable interval, records status, latency and response metadata into PostgreSQL, surfaces trends on a dashboard, and fires email alerts the moment a check fails or a latency threshold breaks.

Outcome

A production-shaped internal tool with a check scheduler, historical analytics, threshold-based alerting and a full CI/CD pipeline — deployed on AWS, with every change gated by automated tests.

Deliverables

  • Scheduled endpoint check runner
  • Latency and uptime analytics dashboard
  • Email alerting on failure and threshold breach
  • Historical metrics store in PostgreSQL
  • GitHub Actions CI/CD pipeline to AWS
24/7Scheduled checks
5Minute alert latency
1Pipeline to production
Smart API Monitor — A monitoring service that watches your APIs on a schedule, keeps the history, and tells you the moment something breaks.
Smart API Monitor in production — devops, infrastructure.

Overview

Smart API Monitor watches endpoints the way a smoke test watches a release, but continuously and with history. You register an endpoint, choose a schedule and thresholds, and the service takes over the boring part.

The design work was mostly about signal: a dashboard that separates “is it up” from “is it healthy”, so an on-call engineer sees the difference in one glance.

The challenge

  • Probe endpoints on a schedule without a race between checks
  • Store enough history to answer “when did it start?”
  • Alert on both hard failures and slow degradation
  • Keep the dashboard useful at 3am
  • Ship continuously without a manual release ritual

Approach

1. Checks are idempotent and isolated

Each check runs as an independent job with its own timeout, its own retry policy and its own record. A hung endpoint can never block the scheduler, and one failed check never corrupts the run.

2. History is the product

Status alone is a notification; history is a diagnosis. Every check stores latency, response time, status code and payload size, which is what turns “the API is slow” into “the API got slow after Tuesday's deploy”.

3. Alerting with a fatigue budget

Alerts are deduplicated per endpoint, and a flapping endpoint gets one message with the flap window rather than forty messages. An alert channel you mute is an alert channel you no longer have.

The solution

A Next.js dashboard over an Express check runner, with PostgreSQL holding the metric history and AWS hosting the whole stack behind a CI/CD pipeline defined in GitHub Actions. Deployments are reproducible from a clean checkout, and the pipeline runs the test suite before anything touches production.

Results

The service is running internally. Checks report on their configured intervals, failures page the right person, and the dashboard shows uptime and latency trends per endpoint over a selectable window.

Key takeaways

Alerting is a design problem before it is an infrastructure problem. A noisy monitor is a monitor people mute, and a muted monitor is worse than no monitor because it still feels covered.

Keeping the history is what turns monitoring into understanding. Without it you know things are broken; with it, you know when they broke and what changed.

We stopped asking each other whether the API was down. The monitor tells us, tells the on-call, and keeps the history so the post-mortem starts with answers instead of guesses.
Smart API MonitorPlatform team

FAQ

What does it monitor?

Registered HTTP endpoints, probed on a per-endpoint schedule with configurable timeouts, retries and latency thresholds. Failed or slow checks trigger email alerts.

How long is the history kept?

Check records — status, latency, response size and timing — are written to PostgreSQL on every run, so trends are available per endpoint over a selectable window.

How is it deployed?

Through a GitHub Actions pipeline that runs the test suite and deploys to AWS, so every release is reproducible and nothing reaches production unverified.

Have a project in mind?

I design and build production websites, platforms and documentation — from the first wireframe to a live deployment.

Next case study

FlavorFit

Explore case study
FlavorFit — A nutrition platform where a conversational AI writes the plan, a tracker keeps the score, and Stripe handles the tier.