Per-app drill-down rows in Grafana #428

Open
opened 2026-06-13 18:35:18 +00:00 by ldraney · 1 comment
Owner

Type

Feature

Lineage

Migrated from ldraney/DORA#3.
Standalone — part of DORA dashboard improvements.

Repo

ldraney/pal-e-platform

User Story

As a platform operator
I want one Grafana row per Tier 1 repo with DF/LT/CFR/MTTR
So that I can identify which app is dragging a metric down

Context

The current dashboard shows per-repo data only via the $repo dropdown — you can only see one repo at a time. Dedicated collapsible rows per Tier 1 repo give at-a-glance health without toggling.

File Targets

Files the agent should modify or create:

  • terraform/dashboards/dora-dashboard.json — add collapsible rows

Feature Flag

None required — collapsible rows are additive UI elements.

Acceptance Criteria

  • One collapsible row each for: pal-e-platform, pal-e-services, pal-e-deployments, pal-e-docs, basketball-api
  • Each row has 4 panels: DF, LT, CFR, MTTR scoped to that repo
  • Rows collapsed by default

Test Expectations

  • Manual: verify rows expand/collapse and show correct per-repo data

Constraints

  • Dashboard JSON size — keep panels lean to avoid Grafana load issues

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • dora-metrics — project this affects
### Type Feature ### Lineage Migrated from ldraney/DORA#3. Standalone — part of DORA dashboard improvements. ### Repo `ldraney/pal-e-platform` ### User Story As a platform operator I want one Grafana row per Tier 1 repo with DF/LT/CFR/MTTR So that I can identify which app is dragging a metric down ### Context The current dashboard shows per-repo data only via the `$repo` dropdown — you can only see one repo at a time. Dedicated collapsible rows per Tier 1 repo give at-a-glance health without toggling. ### File Targets Files the agent should modify or create: - `terraform/dashboards/dora-dashboard.json` — add collapsible rows ### Feature Flag None required — collapsible rows are additive UI elements. ### Acceptance Criteria - [ ] One collapsible row each for: pal-e-platform, pal-e-services, pal-e-deployments, pal-e-docs, basketball-api - [ ] Each row has 4 panels: DF, LT, CFR, MTTR scoped to that repo - [ ] Rows collapsed by default ### Test Expectations - [ ] Manual: verify rows expand/collapse and show correct per-repo data ### Constraints - Dashboard JSON size — keep panels lean to avoid Grafana load issues ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `dora-metrics` — project this affects
Author
Owner

Issue #428 Template Review

TEMPLATE CONFORMANCE

  • ### Type present and valid (Feature)
  • ### Lineage present and non-empty
  • ### Repo present and correct (ldraney/pal-e-platform)
  • ### User Story present with As/I want/So that structure
  • ### Context present and explains the problem (single-repo dropdown limitation)
  • ### File Targets present with specific path
  • ### Feature Flag present ("None required" -- reasonable for additive UI)
  • ### Acceptance Criteria present with concrete items
  • ### Test Expectations present (manual verification -- appropriate for dashboard JSON)
  • ### Constraints present (dashboard JSON size concern)
  • ### Checklist items missing - [ ] checkbox format (nit)
  • ### Related present

All required sections present and non-empty. Template is conformant.

CONTENT QUALITY

File Targets -- VERIFIED. terraform/dashboards/dora-dashboard.json exists and currently has 13 panels across 5 rows (none collapsible). The $repo template variable exists and pulls repos dynamically from Prometheus via label_values(dora_pr_merges_total, repo). The target path is real and the described work is additive.

Acceptance Criteria -- adequate but could be tighter. The five repos are named explicitly (pal-e-platform, pal-e-services, pal-e-deployments, pal-e-docs, basketball-api). "Rows collapsed by default" is clear. Missing: what datasource/queries each panel uses. However, since the $repo variable already exists as a pattern, the agent has enough signal to scope the work.

User Story -- well-framed. The pain point (toggling a dropdown to compare repos) and the solution (collapsible rows for at-a-glance comparison) are clear.

Scope -- single deployable unit. One file, additive changes (new row panels appended to the panels array). No infra, no migrations, no multi-repo coordination. Good.

DEPENDENCY ANALYSIS

Soft dependency on #427 (tier variable). Issue #427 adds a $tier variable to filter repos by tier. If #427 merges first, the per-app rows in #428 should respect that filter. If #428 merges first, the rows will show all repos regardless of tier. Neither ordering is broken, but the agent implementing #428 should be aware that a tier filter may exist by then. Not a blocker -- the issues are independent enough to execute in either order, but the PR for whichever lands second will need to account for the other's changes.

Merge conflict risk with #429, #430, and PR #396. All four issues (#427-430) plus the existing open PR #396 target the same dora-dashboard.json file. Whichever merges first will cause merge conflicts for the rest. This is manageable (JSON diffs are straightforward) but the executing agent should rebase against main before opening the PR.

#395 vs #429/#430 overlap. Issue #395 ("band color thresholds + rolling trend panels") appears to cover the same scope as #429 + #430. PR #396 is open for #395. Clarify whether #395 is superseded by the split issues or still active -- if both #395 and #429/#430 proceed, the work will be duplicated.

BLOCKERS

None.

NITS

  1. Checklist format: Items should use - [ ] checkbox syntax per template convention. Currently plain text bullets.
  2. Acceptance criteria panel detail: Consider specifying whether DF/LT panels are stat panels vs time series, and whether CFR/MTTR use gauge vs stat. The agent can infer from existing panels, but explicit spec reduces ambiguity.
  3. Lineage reference: "Migrated from ldraney/DORA#3" -- confirm this repo/issue exists. If DORA was a temporary planning repo, note that for traceability.

VERDICT: APPROVED

Issue #428 is board-ready. Template is complete, file target is verified, scope is a clean single-file additive change. The soft dependency on #427 and merge conflict risk with siblings are noted but not blocking -- standard coordination for a batch of related dashboard improvements.

## Issue #428 Template Review ### TEMPLATE CONFORMANCE - [x] `### Type` present and valid (Feature) - [x] `### Lineage` present and non-empty - [x] `### Repo` present and correct (`ldraney/pal-e-platform`) - [x] `### User Story` present with As/I want/So that structure - [x] `### Context` present and explains the problem (single-repo dropdown limitation) - [x] `### File Targets` present with specific path - [x] `### Feature Flag` present ("None required" -- reasonable for additive UI) - [x] `### Acceptance Criteria` present with concrete items - [x] `### Test Expectations` present (manual verification -- appropriate for dashboard JSON) - [x] `### Constraints` present (dashboard JSON size concern) - [ ] `### Checklist` items missing `- [ ]` checkbox format (nit) - [x] `### Related` present All required sections present and non-empty. Template is conformant. ### CONTENT QUALITY **File Targets -- VERIFIED.** `terraform/dashboards/dora-dashboard.json` exists and currently has 13 panels across 5 rows (none collapsible). The `$repo` template variable exists and pulls repos dynamically from Prometheus via `label_values(dora_pr_merges_total, repo)`. The target path is real and the described work is additive. **Acceptance Criteria -- adequate but could be tighter.** The five repos are named explicitly (pal-e-platform, pal-e-services, pal-e-deployments, pal-e-docs, basketball-api). "Rows collapsed by default" is clear. Missing: what datasource/queries each panel uses. However, since the `$repo` variable already exists as a pattern, the agent has enough signal to scope the work. **User Story -- well-framed.** The pain point (toggling a dropdown to compare repos) and the solution (collapsible rows for at-a-glance comparison) are clear. **Scope -- single deployable unit.** One file, additive changes (new row panels appended to the panels array). No infra, no migrations, no multi-repo coordination. Good. ### DEPENDENCY ANALYSIS **Soft dependency on #427 (tier variable).** Issue #427 adds a `$tier` variable to filter repos by tier. If #427 merges first, the per-app rows in #428 should respect that filter. If #428 merges first, the rows will show all repos regardless of tier. Neither ordering is broken, but the agent implementing #428 should be aware that a tier filter may exist by then. **Not a blocker** -- the issues are independent enough to execute in either order, but the PR for whichever lands second will need to account for the other's changes. **Merge conflict risk with #429, #430, and PR #396.** All four issues (#427-430) plus the existing open PR #396 target the same `dora-dashboard.json` file. Whichever merges first will cause merge conflicts for the rest. This is manageable (JSON diffs are straightforward) but the executing agent should rebase against main before opening the PR. **#395 vs #429/#430 overlap.** Issue #395 ("band color thresholds + rolling trend panels") appears to cover the same scope as #429 + #430. PR #396 is open for #395. Clarify whether #395 is superseded by the split issues or still active -- if both #395 and #429/#430 proceed, the work will be duplicated. ### BLOCKERS None. ### NITS 1. **Checklist format**: Items should use `- [ ]` checkbox syntax per template convention. Currently plain text bullets. 2. **Acceptance criteria panel detail**: Consider specifying whether DF/LT panels are stat panels vs time series, and whether CFR/MTTR use gauge vs stat. The agent can infer from existing panels, but explicit spec reduces ambiguity. 3. **Lineage reference**: "Migrated from ldraney/DORA#3" -- confirm this repo/issue exists. If DORA was a temporary planning repo, note that for traceability. ### VERDICT: APPROVED Issue #428 is board-ready. Template is complete, file target is verified, scope is a clean single-file additive change. The soft dependency on #427 and merge conflict risk with siblings are noted but not blocking -- standard coordination for a batch of related dashboard improvements.
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-platform#428
No description provided.