Review: PrometheusRule alerts
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type — Feature
- [x] Lineage — standalone, discovered during observability gap audit
- [ ] Repo — WRONG. Says pal-e-deployments but should be pal-e-platform (see Repo Placement)
- [x] User Story — clear operator story
- [x] Context — references cluster-wide alerts as baseline
- [ ] File Targets — targets kustomize overlay but should target Terraform (see Repo Placement)
- [ ] Acceptance Criteria — alert expressions use wrong metric names (see below)
- [x] Test Expectations — amtool check-rules
- [x] Constraints — depends on #19 and #15
- [x] Checklist — present
- [x] Related — links to parent #43
Traceability
- [x] story:observability — present on board item
- [x] arch:k8s-deploy — present but should be arch:platform after repo correction
- [x] Forgejo issue #17 — open
File Targets
Issue targets overlays/landscaping-assistant/prod/ in pal-e-deployments. This is wrong — all existing PrometheusRules are in pal-e-platform/terraform/modules/monitoring/main.tf as kubernetes_manifest resources (blackbox_alerts, embedding_alerts, payment_pipeline_alerts, gmail_oauth_expiry_alert).
Repo Placement
WRONG. Should target pal-e-platform Terraform, not pal-e-deployments kustomize. Every other PrometheusRule follows the Terraform pattern. Using kustomize diverges from the established convention.
Dependencies
- [ ] #19 /metrics endpoint — PENDING
- [ ] #15 ServiceMonitor fix — PENDING
Acceptance Criteria
PROBLEM: Alert expressions reference http_requests_total and http_request_duration_seconds_bucket, but yabeda-rails (PR #47) emits rails_requests_total and rails_request_duration. All PromQL expressions need rewriting with correct metric names.
Blast Radius
Low once corrected. New PrometheusRule only. No impact on existing alerts.
Decomposition Assessment
Single resource in one repo once corrected. No decomposition needed.
Recommendation
- Change target repo from pal-e-deployments to pal-e-platform
- Update file targets to terraform/modules/monitoring/main.tf
- Fix metric names: http_requests_total → rails_requests_total, http_request_duration_seconds_bucket → rails_request_duration
- Update board item label from arch:k8s-deploy to arch:platform
- Re-review after corrections