Skip to content

Notes — Module 01: Introduction to Observability

These are your personal study notes. Write freely and honestly. Incomplete notes are fine — they show where your understanding still needs work. Return to this file to add insights as they develop over time.

Module: [[modules/01_introduction]] Topic: [[feature-flags-monitoring]] Date started: To be filled in Status: Not started


Concept Map

Sketch how the concepts in this module relate to each other. Fill in the Mermaid diagram.

mindmap
  root((Observability))
    Three Pillars
      Metrics
        Prometheus
        Counters / Gauges / Histograms
      Logs
        Structured logging
        Correlation IDs
      Traces
        Spans
        Trace ID propagation
    Service Levels
      SLI
      SLO
      SLA
      Error Budget
    Feature Flags
      Dark launch
      Progressive rollout
      Kill switch
      A/B testing
    Toolchain
      Prometheus + Grafana
      Sentry
      OpenTelemetry
      PostHog
      DataDog

Alternative: draw this on paper, photo it, and link the image here.


Key Insights

The "aha moments" — the things that, once understood, made the rest clear. Be specific: "I finally understood X because Y" is more useful than "X makes sense".

  1. [Insight title]: To be filled in
  2. [Insight title]: To be filled in
  3. Add insights as you discover them

My Understanding

Explain the core concepts in your own words, as if teaching them to someone else.

Monitoring vs. Observability

Your explanation here

What I'm still unsure about: To be filled in

The Three Pillars

Your explanation here

What I'm still unsure about: To be filled in

SLI/SLO/SLA and Error Budget

Your explanation here

What I'm still unsure about: To be filled in

Feature Flags

Your explanation here


Connections to Other Topics

How does this module connect to things you already know?

This module's concept Connects to How
Error budgets [[devops-platform-engineering]] Deployment frequency decisions depend on error budget health
Distributed traces [[systems-architecture]] Microservice architectures create the need for trace propagation
Feature flags [[django-fastapi-flask]] Flask/FastAPI apps are where flags are implemented

Questions That Arose

Log questions as they appear. Don't stop to answer them now — just capture them.

  • Question 1 → add to QUESTIONS.md
  • Question 2 → needs more study
  • Question 3 → might be answered in Module 02

Code Snippets Worth Remembering

Basic Prometheus Counter

from prometheus_client import Counter
REQUESTS = Counter('http_requests_total', 'Total HTTP requests', ['method', 'status'])
REQUESTS.labels(method='GET', status='200').inc()

Why I'm saving this: The pattern of defining metric name, help text, and labels in the constructor, then calling .labels().inc() is the fundamental Prometheus SDK pattern.


Error Budget Formula

error_budget_minutes = (1 - slo_target) * 30 * 24 * 60
# For 99.9% SLO: (1 - 0.999) * 43200 = 43.2 minutes/month

Why I'm saving this: Easy to forget the formula; this is used constantly in SLO conversations.


What Tripped Me Up

Mistakes I made, misconceptions I had, things that confused me more than they should have.

  • [Stumbling block]: To be filled in

Summary in My Own Words

Write a 3–5 sentence summary of this entire module without looking at any notes. If you can't do this, you need more study time.

To be filled in after completing the module.


Last updated: 2026-06-09