Review: Observability: blackbox probe + golden signals
Verdict: READY
Template Completeness
- [x] Type — Feature
- [x] Lineage — "Required for production. Marcus needs uptime assurance during streams."
- [x] Repo — forgejo_admin/pal-e-platform
- [x] User Story — clear operator story with motivation
- [x] Context — explains monitoring pattern and why it matters for playme2k
- [x] File Targets — 2 specific paths with descriptions
- [x] Acceptance Criteria — 4 testable conditions
- [x] Test Expectations — tofu plan + Prometheus verification
- [x] Constraints — pattern matching, internal URL, lock flag
- [x] Checklist — PR, tests, no unrelated changes
- [x] Related — links to story note, arch note, project page
Traceability
- [x] story:observability — Platform Observability. Story note story-twitch-2k-wager-observability (id 1166) exists. Key "observability" listed in project-twitch-2k-wager user-stories table.
- [x] arch:deployment-twitch-2k-wager — Deployment topology. Arch note arch-deployment-twitch-2k-wager (id 1156) exists in pal-e-docs.
- [x] Forgejo issue — forgejo_admin/twitch-2k-wager#57, open
File Targets
- [x]
terraform/modules/monitoring/main.tf— verified exists. Blackbox exporter targets array at line 342. Dashboard ConfigMap pattern at line 644. Agent adds a new target entry and a new ConfigMap resource. - [x]
terraform/dashboards/— verified directory exists.pal-e-docs-golden-signals.jsonavailable as copy template.playme2k-golden-signals.jsondoes not yet exist (expected — ticket creates it).
Repo Placement
OK. Issue filed on forgejo_admin/twitch-2k-wager (service repo) for traceability.
### Repo field correctly identifies forgejo_admin/pal-e-platform as the target repo for code changes. Single-repo change — no cross-repo coordination needed.Dependencies
- [x] pal-e-platform repo access — satisfied (working directory)
- [x] Existing monitoring patterns — satisfied (blackbox exporter + dashboard ConfigMaps already deployed)
- [ ] playme2k service running — pending (board item #825, issue #56 "Fix: prod pod" is in backlog). However, Terraform resources can be applied independently. Probe will report "down" until service is live, matching existing patterns. Not a blocking dependency for implementation.
Acceptance Criteria
4 AC, all testable by an agent:
- "Blackbox probe configured" — verifiable via
tofu plan -lock=falseoutput showing new target entry - "Probe appears in Prometheus targets" — verifiable post-apply via Prometheus UI (post-merge validation, not agent-gated)
- "Grafana dashboard shows golden signals" — verifiable via ConfigMap creation in plan output
- "Alerts fire on downtime" — covered automatically by existing
EndpointDownPrometheusRule (line 445,probe_success == 0) which fires for all blackbox targets. No new alert rule needed.
Test expectations are realistic:
tofu plan -lock=false for pre-merge, Prometheus target check for post-apply.Blast Radius
- 2 files touched in 1 repo (monitoring/main.tf + new dashboard JSON)
- No changes to existing probes or dashboards
- Existing EndpointDown alert automatically covers the new target
- No downstream consumers affected
- Rollback: remove target entry + ConfigMap + delete dashboard JSON. Straightforward.
Decomposition Assessment
- 2 file targets in 1 repo — under the 3-file limit
- 4 acceptance criteria — under the 5 AC limit
- Estimated agent time: 2-3 minutes (copy dashboard template + add probe target + add ConfigMap) — under the 5-minute rule
- No independent subtasks that need parallelization
- No decomposition needed.
Recommendation
- No action needed. Scope is solid, all file targets verified, traceability complete, fits in a single agent pass.
Implementation note: The probe URL in the Constraints section (
http://twitch-2k-wager-app.playme2k.svc.cluster.local:3000/) uses namespace playme2k while the arch diagram says twitch-2k-wager namespace. The agent should verify the actual k8s namespace at implementation time by checking the pal-e-deployments kustomize overlay. This is an implementation detail, not a scoping issue.