Skip to content

feat(infra): add alerting pipeline (AlertManager + Grafana Alerting → Discord)#3501

Closed
manamana32321 wants to merge 2 commits intomainfrom
feat/alerting-pipeline
Closed

feat(infra): add alerting pipeline (AlertManager + Grafana Alerting → Discord)#3501
manamana32321 wants to merge 2 commits intomainfrom
feat/alerting-pipeline

Conversation

@manamana32321
Copy link
Member

Summary

  • AlertManager: Discord webhook receiver via alertmanagerConfigSecret (SealedSecret) + HighNodeMemoryUsage PrometheusRule
  • Grafana Alerting: Discord contact point + notification policy + RDS FreeStorageSpace Low alert rule (production only)
  • Prometheus ApplicationSet에 Kustomize overlay source 추가 (SealedSecret 배포 경로)
  • Production + Stage 양쪽 환경 적용

TODO (머지 전 필요)

  • SealedSecret 재생성 (올바른 클러스터 컨텍스트에서 kubeseal 실행)
    • prometheus/overlays/production/alertmanager-config.yaml
    • prometheus/overlays/stage/alertmanager-config.yaml
    • grafana/overlays/production/discord-webhook.yaml
    • grafana/overlays/stage/discord-webhook.yaml

알림 경로

Prometheus metrics → PrometheusRule → AlertManager → Discord
CloudWatch metrics → Grafana Alerting → Discord

Test plan

  • SealedSecret 재생성 후 올바른 클러스터에서 복호화 가능 확인
  • Stage 배포 후 AlertManager UI에서 Discord receiver 확인
  • Grafana UI → Alerting → Contact Points에서 Discord 연결 확인
  • Contact Point "Test" 버튼으로 Discord 메시지 수신 확인
  • Production 배포 후 RDS alert rule 정상 평가 확인

🤖 Generated with Claude Code

manamana32321 and others added 2 commits March 25, 2026 00:23
- AlertManager: add alertmanagerConfigSecret reference + HighNodeMemoryUsage PrometheusRule
- Grafana: add Discord contact point, notification policy, and RDS FreeStorageSpace alert rule
- Apply same structure to both production and stage environments
- SealedSecrets to be added separately (requires correct cluster context)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…dSecrets

- Create overlays/{production,stage} for environment-specific SealedSecrets
- Add Kustomize source to prometheus ApplicationSet
- SealedSecret files are placeholder (need re-seal with correct cluster context)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@manamana32321 manamana32321 deleted the feat/alerting-pipeline branch March 24, 2026 15:29
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ef1f0ec382

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- admin-user.yaml
- aws-credentials.yaml
- github-credentials.yaml
- discord-webhook.yaml

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add missing discord webhook manifest before referencing it

This overlay now references discord-webhook.yaml, but that file is not present in this commit for either grafana/overlays/production or grafana/overlays/stage, so kustomize build for the overlay fails at render time. Since infra/k8s/argocd/applications/monitoring/grafana.yaml uses these overlays as an ArgoCD source, Grafana sync will fail before any of the alerting changes are applied.

Useful? React with 👍 / 👎.


alertmanager:
alertmanagerSpec:
alertmanagerConfigSecret: alertmanager-config

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use supported Alertmanager secret field in values

The new key alertmanager.alertmanagerSpec.alertmanagerConfigSecret is not a supported Alertmanager spec field for kube-prometheus-stack; the chart/operator expects configSecret (typically paired with useExistingSecret). As written, this setting will be ignored or rejected, so the alertmanager-config sealed secret will not become the active Alertmanager config and Discord routing will not be enabled.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant