DORA Metrics

dora-metrics forgejo

Notes

Project Page 1
  • Project: DORA Metrics project-dora-metrics

    Vision

    Meaningful, tiered DORA metrics across the pal-e platform. Measure what matters (production repos), ignore what doesn't (playgrounds), and surface it all in Grafana with actionable drill-downs.

    User Stories

    Story As a... I want... So that...
    Platform health at a glance Platform operator Tier 1 DORA composite in Grafana I know if production pipelines are healthy without digging
    Per-app drill-down Platform operator One Grafana row per Tier 1 repo with DF/LT/CFR/MTTR I can identify which app is dragging a metric down
    Noise-free metrics Platform operator Playground repos excluded from DORA dashboards Composite scores reflect real production health
    Portfolio evidence Job seeker Documented DORA standing with data lineage I can demonstrate platform maturity to employers

    Architecture

    flowchart LR
        subgraph Action["Action Path (agents cause events)"]
            A[Claude Code / Agents]
            FMCP[forgejo-mcp]
            WMCP[woodpecker-mcp]
            FSDK[forgejo-sdk]
        end
        subgraph Platform
            FG[Forgejo API]
            WP[Woodpecker API]
        end
        subgraph Measurement["Measurement Path (exporter observes)"]
            EXP[pal-e-dora-exporter]
            PROM[Prometheus]
            GRAF[Grafana]
        end
    
        A -->|MCP| FMCP
        A -->|MCP| WMCP
        FMCP --> FSDK --> FG
        WMCP --> WP
        FG --> EXP
        WP --> EXP
        EXP -->|metrics| PROM
        PROM --> GRAF

    Two independent paths share the same APIs. Action path: Agents use forgejo-mcp and woodpecker-mcp to create issues, merge PRs, trigger pipelines — these are the events DORA measures. Measurement path: pal-e-dora-exporter independently scrapes Forgejo + Woodpecker APIs, emits Prometheus metrics (dora_pr_merges_total, dora_pr_lead_time_seconds_bucket, dora_deployments_total, dora_deployment_last_success_timestamp), and Grafana renders the dashboard. The two paths are parallel consumers — forgejo-mcp is not in the observability pipeline.

    Board

    board-dora-metrics — DORA Metrics Board

    Status

    2026-06-13 (Wave 2 complete): 9 of 11 board items done, 35pts shipped across 5 repos in one session. Wave 1: exporter tier labels (PR #3), forgejo-mcp DORA tools (PR #31), ArgoCD spike (PR #8), color thresholds (PR #396 after CI fix). Wave 2: Grafana tier variable (PR #432, critical path done), MTTR failure detection (PR #9), pal-e-services CI pipeline (PR #118), woodpecker DORA tools (PR #5). Remaining: #428 drill-downs (3pts, unblocked), #430 trend panels (2pts, may overlap PR #396). Also fixed 3 missing Woodpecker secrets and stale basic auth in update-docs skill.

    2026-05-29: Foundation complete. DORA exporter live in Prometheus, Grafana dashboard exists, all Forgejo repos scraped.

    Milestones

    • 2026-03-01 — Manual DORA baseline (completed)
    • 2026-03-14 — DORA exporter live + Grafana dashboard + re-baseline with Prometheus data (completed)
    • Next — Tier labels in exporter → Grafana filtering → per-app drill-downs

    Repos

    Repo Role Path Status
    forgejo-mcp MCP tools + DORA docs (architecture, metrics, tiering, dashboard) Action + Docs Active
    pal-e-dora-exporter Python Prometheus exporter — polls Woodpecker + Forgejo APIs Measurement Active
    pal-e-platform Terraform: exporter deployment, ServiceMonitor, Grafana dashboard ConfigMap Measurement Active
    woodpecker-mcp MCP tools for Woodpecker CI — pipeline triggers the exporter measures Action Active
    pal-e-services Service onboarding IaC — no CI pipeline, CFR gap Data gap Active
    pal-e-deployments Kustomize overlays — ArgoCD not instrumented, deployment tracking gap Data gap Active
    DORA Documentation — absorbed into forgejo-mcp/docs/ (PR #30) Archived
Board 1
Repos 1
  • DORA
    active