A drop-in monitoring stack built with Docker Compose that includes:
- 📈 Host metrics via Node Exporter
- 🔧 Redis metrics via Redis Exporter
- 🌐 HTTP(S) availability monitoring via Blackbox Exporter
- ⚡ Web performance audits via Lighthouse (on-demand)
- 📊 Pre-provisioned Grafana dashboards
- 📓 Jupyter Notebook to visualize data
git clone https://github.com/your-username/monitoring-stack
cd monitoring-stack
docker compose up -d| Service | URL | Credentials |
|---|---|---|
| Prometheus UI | http://localhost:9090 | - |
| Grafana | http://localhost:3000 | admin / admin123 |
| Blackbox Exporter | http://localhost:9115 | - |
⚠️ Grafana is pre-provisioned. If you change any dashboard, export it to JSON and commit the file to keep it version-controlled.
.
├── README.md
├── docker-compose.yml
├── prometheus.yml
├── blackbox.yml
├── rules/ # Prometheus alerting/recording rules
├── grafana/
│ └── provisioning/ # Auto-loaded dashboards & datasources
└── monitoring-dashboard.ipynb
To add or modify targets, edit prometheus.yml and adjust job_name and static_configs.
Apply changes:
docker compose kill -s SIGHUP prometheus # hot-reload
# or
docker compose restart prometheus # full restartAdd .yml files in rules/. Prometheus will load them via the rule_files directive.
Run ad-hoc audits:
docker compose run --rm lighthouse lighthouse https://example.com --output=json --output-path=/tmp/report.jsonTo persist reports, mount volume in docker-compose.yml:
volumes:
- ./reports:/tmpVisualize live metrics in the included notebook:
Open with JupyterLab or VS Code:
jupyter lab monitoring-dashboard.ipynbpip install prometheus-api-client pandas matplotlib seaborn jupyterdocker compose down -v Muhammad Yusuf Aditiya
🔗 LinkedIn
💻 Open-source enthusiast | Full Stack Automation & Industrial Tech Developer