Add landscaping-assistant Grafana realm with per-app DORA drill-downs #4

Open
opened 2026-06-05 03:37:24 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Standalone — discovered during pipeline health audit of landscaping-assistant (2026-06-04). The project-dora-metrics status already calls out "no tier labels, no per-app drill-downs" as the #1 gap.

Repo

ldraney/pal-e-dora-exporter (exporter changes) + forgejo_admin/pal-e-platform (Grafana dashboard ConfigMap)

User Story

As a platform operator
I want a dedicated Grafana folder for landscaping-assistant with DORA, pipeline, and app health panels
So that I can measure pipeline efficiency improvements and track production health for my most active app

Context

All 30+ repos are lumped into one flat DORA dashboard. landscaping-assistant is the most active app pipeline (lint → test → build → push → ArgoCD) and the best candidate for a dedicated per-app view. It's also where active pipeline optimization work is happening (PVC bundle caching, Kaniko layer caching), and without per-step timing panels we can't measure whether those optimizations actually help.

The DORA exporter currently emits 4 metric families (dora_pr_merges_total, dora_pr_lead_time_seconds_bucket, dora_deployments_total, dora_deployment_last_success_timestamp) but has no tier labels and no pipeline step-level timing. Woodpecker API may return null for step timestamps — needs investigation.

Additionally, ~27% of recent landscaping-assistant pipeline runs fail with "No steps found" (Woodpecker k8s scheduling errors). A pipeline health panel would make this visible.

File Targets

pal-e-dora-exporter:

  • Collector modules — add tier label to all metrics, add step-level timing collection
  • Config — tier mapping (production vs playground repos)

pal-e-platform:

  • terraform/grafana-dashboards/ — new ConfigMap for landscaping-assistant folder
  • Dashboard JSON — DORA panels, pipeline step timing, app health

Acceptance Criteria

  • Grafana folder "landscaping-assistant" exists with DORA, pipeline, and app health panel groups
  • DORA panels show repo-scoped DF, LT, CFR, MTTR with historical trends for landscaping-assistant only
  • Pipeline panels show per-step duration breakdown (bundle-install, lint, test, build-and-push)
  • Pipeline panels show scheduling failure rate ("no steps found" errors)
  • Tier labels on exporter metrics allow filtering playground repos from composite DORA scores

Test Expectations

  • Exporter unit tests cover tier label emission and step timing metric shape
  • Grafana dashboard loads with all panels showing data for landscaping-assistant
  • Run command: pytest in pal-e-dora-exporter

Constraints

  • Follow existing Grafana dashboard ConfigMap pattern in pal-e-platform
  • Exporter must remain stateless (no database) — derive everything from Forgejo + Woodpecker APIs
  • Investigate whether Woodpecker API actually exposes step timestamps before building step timing panels — may need Woodpecker DB query or API enhancement

Checklist

  • PR opened (exporter)
  • PR opened (platform)
  • Tests pass
  • No unrelated changes
  • project-dora-metrics — parent project
  • dora-framework — DORA axiom and measurement methodology
  • milestone-2026-03-14-woodpecker-postgres-dora-pipeline — Woodpecker migration that enabled DORA data
### Type Feature ### Lineage Standalone — discovered during pipeline health audit of landscaping-assistant (2026-06-04). The `project-dora-metrics` status already calls out "no tier labels, no per-app drill-downs" as the #1 gap. ### Repo `ldraney/pal-e-dora-exporter` (exporter changes) + `forgejo_admin/pal-e-platform` (Grafana dashboard ConfigMap) ### User Story As a platform operator I want a dedicated Grafana folder for landscaping-assistant with DORA, pipeline, and app health panels So that I can measure pipeline efficiency improvements and track production health for my most active app ### Context All 30+ repos are lumped into one flat DORA dashboard. landscaping-assistant is the most active app pipeline (lint → test → build → push → ArgoCD) and the best candidate for a dedicated per-app view. It's also where active pipeline optimization work is happening (PVC bundle caching, Kaniko layer caching), and without per-step timing panels we can't measure whether those optimizations actually help. The DORA exporter currently emits 4 metric families (`dora_pr_merges_total`, `dora_pr_lead_time_seconds_bucket`, `dora_deployments_total`, `dora_deployment_last_success_timestamp`) but has no tier labels and no pipeline step-level timing. Woodpecker API may return null for step timestamps — needs investigation. Additionally, ~27% of recent landscaping-assistant pipeline runs fail with "No steps found" (Woodpecker k8s scheduling errors). A pipeline health panel would make this visible. ### File Targets **pal-e-dora-exporter:** - Collector modules — add tier label to all metrics, add step-level timing collection - Config — tier mapping (production vs playground repos) **pal-e-platform:** - `terraform/grafana-dashboards/` — new ConfigMap for landscaping-assistant folder - Dashboard JSON — DORA panels, pipeline step timing, app health ### Acceptance Criteria - [ ] Grafana folder "landscaping-assistant" exists with DORA, pipeline, and app health panel groups - [ ] DORA panels show repo-scoped DF, LT, CFR, MTTR with historical trends for landscaping-assistant only - [ ] Pipeline panels show per-step duration breakdown (bundle-install, lint, test, build-and-push) - [ ] Pipeline panels show scheduling failure rate ("no steps found" errors) - [ ] Tier labels on exporter metrics allow filtering playground repos from composite DORA scores ### Test Expectations - [ ] Exporter unit tests cover tier label emission and step timing metric shape - [ ] Grafana dashboard loads with all panels showing data for landscaping-assistant - Run command: `pytest` in pal-e-dora-exporter ### Constraints - Follow existing Grafana dashboard ConfigMap pattern in pal-e-platform - Exporter must remain stateless (no database) — derive everything from Forgejo + Woodpecker APIs - Investigate whether Woodpecker API actually exposes step timestamps before building step timing panels — may need Woodpecker DB query or API enhancement ### Checklist - [ ] PR opened (exporter) - [ ] PR opened (platform) - [ ] Tests pass - [ ] No unrelated changes ### Related - `project-dora-metrics` — parent project - `dora-framework` — DORA axiom and measurement methodology - `milestone-2026-03-14-woodpecker-postgres-dora-pipeline` — Woodpecker migration that enabled DORA data
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/pal-e-dora-exporter#4
No description provided.