Learn the open-source monitoring stack by running it. Work through the lessons in order and you'll go from your first scrape to dashboards and alerts — Prometheus scraping and PromQL, exporters, instrumenting your own app, recording and alerting rules, Alertmanager, and Grafana dashboards and alerting. Every lesson is config you write and queries you run.
This course teaches the Prometheus + Grafana monitoring stack by running it locally — the easiest way is a small Docker Compose file, so you need Docker and terminal comfort. You do NOT need a cloud account or any servers; everything runs on your machine. New to containers? Do the Docker course first.
Before you start
You need Docker (Desktop on Windows/macOS, Engine on Linux). The whole stack runs from one Compose file — no cloud, no installs beyond Docker.
Create a folder with a minimal prometheus.yml and a Compose file, then bring it up:
mkdir monitoring-lab && cd monitoring-lab
# minimal prometheus.yml — scrape Prometheus itself
printf 'global:\n scrape_interval: 15s\nscrape_configs:\n - job_name: prometheus\n static_configs:\n - targets: ["localhost:9090"]\n' > prometheus.yml
# bring up the stack (you'll write docker-compose.yml in lesson 1)
docker compose up -dThen open Prometheus at http://localhost:9090 and Grafana at http://localhost:3000 (login admin / admin).
Running Prometheus
Stand up Prometheus locally with Docker, point it at targets with a scrape config, and explore the metrics it collects — the foundation of the whole monitoring stack.
Metrics & Exporters
Understand the four metric types, then scrape real machine metrics with node_exporter — CPU, memory, disk — the data behind most infrastructure dashboards.
Querying with PromQL
PromQL is how you ask Prometheus questions. Select and filter series by label, turn counters into per-second rates, and aggregate across instances into the numbers you actually want.
Instrumenting Your App
Expose your own application’s metrics. Add a client library, publish a /metrics endpoint, and record custom counters and histograms Prometheus can scrape.
Recording & Alerting Rules
Make Prometheus work for you in the background — precompute expensive queries with recording rules, and fire alerts when conditions hold for long enough with alerting rules.
Alertmanager
Prometheus decides when to alert; Alertmanager decides what to do about it — routing alerts to the right people, grouping the noise, and silencing during maintenance.
Grafana: Data Sources & Dashboards
Turn Prometheus data into dashboards. Connect Grafana to Prometheus, build panels from PromQL, make them reusable with variables, and save dashboards as code.
Grafana Alerting
Alert straight from Grafana — define alert rules on your panels, send notifications through contact points, and route them with notification policies.