Instrument a service with the four golden signals
A service is "up" but nobody can actually see how it is doing until users complain. You make its health visible, latency, traffic, errors, and saturation, on one screen a tired on-call can read in seconds.
What you'll build
A service emitting the four golden signals to Prometheus-style metrics, with a Grafana dashboard (defined as code) that makes its health readable at a glance.
See how we teach, before you sign up
You don't just get code dumped on you. Every starter file and every solution is explained line-by-line, in plain English. Here's one real file from this project:
services:
app:
build: ./app
ports: ["8000:8000"]
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
ports: ["9090:9090"]
grafana:
image: grafana/grafana:latest
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
ports: ["3000:3000"]Reading this file
build: ./appBuilds your service from its Dockerfile so the app and its monitoring run together in one stack.image: prom/prometheusPulls the official Prometheus image, the tool that collects and stores your metrics over time.GF_AUTH_ANONYMOUS_ENABLEDLets you open Grafana with no login while developing locally, never do this in production.ports: ["3000:3000"]Maps Grafana to localhost:3000 so you can view dashboards in your browser.
Whole observability stack, service, Prometheus, Grafana, up with one command.
That's 1 of 7 explained code blocks in this single project.
The build, milestone by milestone
- 1
Emit the signals
5 guided stepsThe four golden signals are the smallest set that tells you whether users are being served well. Instrumenting them once gives you alerts, dashboards, and SLOs later.
- 2
Scrape & store
5 guided stepsMetrics the service emits are useless until something collects and retains them. Scraping is what turns instrumentation into history you can query and alert on.
- 3
Build the dashboard
5 guided stepsDuring an incident nobody writes PromQL. A clear, single-screen board is what turns raw metrics into a fast answer to "is it the service or is it me?"
- 4
Size the cost of your metrics
5 guided stepsObservability is not free, every label combination is a stored time series, and cardinality is the #1 way a metrics bill (or a self-hosted Prometheus) blows up. Knowing your number now is the cheapest it will ever be.
What's inside when you start
You'll walk away with
This is portfolio-grade. Build it free.
Sign up to unlock every milestone step-by-step, the code skeletons, full reference solutions, and checkable tasks, with your progress saved as you build.
Start building