Review: PrometheusRule alerts

review-17-2026-06-01 Review

review needs-refinement

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