Back to path
SmallWeekend build ~6h· 4 milestones

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.

Metrics instrumentationGolden signalsPrometheusGrafana dashboardsMetrics cardinality & cost budgeting

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:

docker-compose.ymlyaml
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. 1

    Emit the signals

    5 guided steps

    The 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. 2

    Scrape & store

    5 guided steps

    Metrics 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. 3

    Build the dashboard

    5 guided steps

    During 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. 4

    Size the cost of your metrics

    5 guided steps

    Observability 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

3 starter files, ready to clone
4 guided milestones
4 full reference solutions
7 code blocks explained line-by-line
4 "is it working?" checks
4 interview questions it prepares you for

You'll walk away with

An instrumented service exposing the four golden signals
A committed dashboard-as-code JSON
A screenshot/walkthrough of the golden-signals board under live traffic
A cardinality budget note with active-series count and storage estimate

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