Skip to content

About

Pulse is a containerised infrastructure health monitoring platform with FastAPI health endpoints, Prometheus metrics, Grafana dashboards, structured logging, and alerting.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Backend CI

💓 Pulse

Infrastructure Health Monitoring Platform

Pulse is a containerised infrastructure monitoring platform built with Python, FastAPI, Prometheus, and Grafana. It monitors system health, exposes operational metrics, provides Grafana dashboards, and supports configurable Slack and email alerting.

Key Features

  • CPU, memory, disk, and uptime monitoring
  • Configurable warning and critical thresholds
  • FastAPI /health and /metrics endpoints
  • Prometheus-compatible metrics
  • Grafana infrastructure dashboard
  • Slack and email notifications
  • Alert cooldowns and recovery notifications
  • Structured application logging
  • Containerised deployment with Docker Compose
  • GitHub Actions backend CI

Current Status

Current release: v2.3.2 ✅
Lifecycle: Maintenance

The core Pulse monitoring and observability stack is complete and portfolio-ready.

Pulse provides system resource monitoring, configurable Slack and email alerting, FastAPI health and metrics endpoints, Prometheus metric collection, Grafana visualisation, structured logging, Docker Compose deployment, and GitHub Actions CI.

v2.3.2 introduced a modular application structure separating the API, monitoring, alerting, logging, and dashboard components to improve maintainability.

Future work is limited to maintenance, automated testing, dependency and security updates, alert reliability, documentation, and infrastructure improvements.

See the Roadmap for release history and maintenance work.

Technology Stack

Area Technologies
Backend Python, FastAPI, psutil
Observability Prometheus, Grafana
Alerting Slack Webhooks, SMTP Email
Infrastructure Docker, Docker Compose
CI GitHub Actions (Backend CI)
Configuration python-dotenv
Utilities requests, colorama

Architecture

System Resources
       │
       ▼
  Pulse Monitor
       │
       ├──────────► Structured Logging
       │
       ├──────────► Slack / Email Alerts
       │
       ▼
    FastAPI
 /health  /metrics
       ▲
       │ scrapes
       │
   Prometheus
       │
       │ queries
       ▼
    Grafana

Prometheus periodically scrapes metrics exposed by Pulse, while Grafana queries Prometheus to provide visual monitoring of CPU, memory, disk usage, and system uptime.

For a more in-depth breakdown of the system design, please see the Architecture Documentation.

Screenshots

Terminal Monitor

Pulse terminal system monitor

Grafana Dashboard

Pulse Grafana infrastructure dashboard

Quick Start

Local

Clone the repository:

git clone https://github.com/Iris408/pulse-infrastructure-monitor.git
cd pulse-infrastructure-monitor

Install dependencies:

pip install -r requirements.txt

Create the environment configuration:

cp .env.example .env

Run the terminal monitor:

python3 main.py

Or start the FastAPI service:

python3 -m uvicorn health_api:app --reload --port 8000

Docker

Start the complete monitoring stack:

docker compose up --build -d

Check service status:

docker compose ps

Stop the stack:

docker compose down

For more detailed installation and configuration instructions, please see the Setup Guide.

Monitoring Endpoints

When running locally:

Service URL
API Root http://localhost:8000/
Health http://localhost:8000/health
Metrics http://localhost:8000/metrics
Swagger UI http://localhost:8000/docs
Prometheus http://localhost:9090
Grafana http://localhost:3000

Testing and CI

GitHub Actions automatically validates the Python backend on pushes and pull requests to main.

The current CI workflow runs automated backend checks to help catch regressions before changes are merged.

Additional automated testing, security checks, and Docker validation are tracked as maintenance improvements.

Project Structure

pulse-infrastructure-monitor/
├── app/
│   ├── api/
│   ├── monitoring/
│   ├── alerts/
│   ├── logging/
│   └── dashboard/
├── tests/
├── config/
├── docs/
├── screenshots/
├── examples/
├── .github/workflows/
├── Dockerfile
├── docker-compose.yml
└── README.md

Documentation

Detailed engineering documentation is available in docs/.

Document Description
Alerting Slack, email, thresholds, cooldowns, and recovery alerts
Architecture System architecture and component responsibilities
Configuration Environment variables and application configuration
Grafana Dashboard Dashboard setup, metrics, and panels
Learning Notes Technical lessons and engineering decisions
Logging Logging architecture and operational logs
Monitoring Stack FastAPI, Prometheus, Grafana, and Docker integration
Project Details Additional implementation details
Roadmap Current release and future development
Setup Local and Docker installation
Troubleshooting Common problems and diagnostic steps

License

This project is licensed under the terms in MIT LICENSE file for details.

Author

Built by Iris408

About

Pulse is a containerised infrastructure health monitoring platform with FastAPI health endpoints, Prometheus metrics, Grafana dashboards, structured logging, and alerting.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages