Review: Bug: pal-e-mail ServiceMonitor scraping nonexistent /metrics

review-386-2026-03-26-v3 Review

review ready

Verdict: READY

Template Completeness

  • [x] Type -- present (Bug)
  • [x] Lineage -- present (standalone, discovered during AlertManager triage)
  • [x] Repo -- corrected in comment #7562 to forgejo_admin/pal-e-deployments
  • [x] What Broke / Context -- present (ServiceMonitor scrapes nonexistent /metrics, 404, TargetDown alerts firing 4 days)
  • [x] File Targets -- complete after comment #7591: line 5 base reference + lines 43-53 patch block
  • [x] Acceptance Criteria -- updated in comment #7562 (4 criteria)
  • [x] Test Expectations -- added in comment #7591 (kustomize build pre-merge, kubectl get post-merge)
  • [x] Related -- present (project, story, arch labels)
  • [ ] User Story -- absent (acceptable for a bug ticket; What Broke section serves same purpose)
  • [ ] Constraints -- absent (not needed for a simple resource removal)
  • [ ] Checklist -- absent (minor; standard PR/test checklist implied)

File Targets

  • [x] pal-e-deployments/overlays/pal-e-mail/prod/kustomization.yaml line 5 -- verified: - ../../../bases/servicemonitor base reference exists, must be removed
  • [x] pal-e-deployments/overlays/pal-e-mail/prod/kustomization.yaml lines 43-53 -- verified: ServiceMonitor rename patch block exists, must be removed
  • [x] pal-e-deployments/bases/servicemonitor/servicemonitor.yaml -- verified: shared base, must NOT be modified (used by 3 other services)
  • [x] Confirmed pal-e-mail has NO /metrics endpoint (grep of pal-e-mail codebase returns zero matches)
  • [x] Confirmed basketball-api, mcd-tracker-api, pal-e-docs all have working /metrics endpoints

Repo Placement

Issue filed on pal-e-platform (observability tracking repo). Fix targets pal-e-deployments. Comment #7591 explicitly documents this cross-repo situation and instructs the agent to branch/PR against forgejo_admin/pal-e-deployments. Acceptable -- platform is the observability project; deployments is the fix repo.

Dependencies

No dependencies. No board items in in_progress that block this. No items blocked by this. Standalone fix.

Acceptance Criteria

All 4 criteria are agent-verifiable:
  • ServiceMonitor reference removed -- file diff check
  • TargetDown alerts clear -- post-deploy AlertManager query (may take up to 5 min after sync)
  • ArgoCD syncs successfully -- ArgoCD app status check
  • Other 3 service ServiceMonitors still functional -- kubectl get servicemonitor -n {ns} for each
Test expectations are concrete: kubectl kustomize overlays/pal-e-mail/prod/ (pre-merge) and kubectl get servicemonitor -n pal-e-mail (post-merge).

Blast Radius

Verified safe. Four overlays include the ServiceMonitor base independently:
  • overlays/basketball-api/prod/kustomization.yaml:5
  • overlays/mcd-tracker/prod/kustomization.yaml:5
  • overlays/pal-e-docs/prod/kustomization.yaml:5
  • overlays/pal-e-mail/prod/kustomization.yaml:5 (to be removed)
Each overlay includes the base as its own resource. Removing from pal-e-mail has zero effect on the other three. No downstream consumers affected.

Prior Review History

  • v1 (review-386-2026-03-26): NEEDS_REFINEMENT -- repo mismatch, no file paths, ambiguous fix direction
  • Correction #1 (comment #7562): Fixed repo, added file targets (lines 43-53), chose remove direction
  • v2 (review-386-2026-03-26-v2): NEEDS_REFINEMENT -- orphaned line 5 base ref, missing test expectations, cross-repo PR note
  • Correction #2 (comment #7591): Added line 5 target, test expectations, cross-repo PR note
  • v3 (this review): READY -- all items resolved

Recommendation

No action needed. Scope is complete. Agent can execute from the combined issue body + comments. Move board item #386 from todo to next_up when ready to assign.