From 997893284bdf1351a954e8fb9341aa805f77858a Mon Sep 17 00:00:00 2001 From: Mayne0213 Date: Sun, 4 Jan 2026 14:35:08 +0900 Subject: [PATCH] FEAT(alertmanager): add ServiceMonitor - Create servicemonitor.yaml for Prometheus to scrape Alertmanager - alertmanager chart does not include ServiceMonitor, must be added separately - Enables Grafana Alertmanager dashboard to display data --- alertmanager/helm-values.yaml | 7 ------- alertmanager/kustomization.yaml | 1 + alertmanager/servicemonitor.yaml | 27 +++++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 alertmanager/servicemonitor.yaml diff --git a/alertmanager/helm-values.yaml b/alertmanager/helm-values.yaml index 76a978c..a0d8c66 100644 --- a/alertmanager/helm-values.yaml +++ b/alertmanager/helm-values.yaml @@ -13,13 +13,6 @@ resources: cpu: 10m memory: 32Mi -# Prometheus ServiceMonitor 설정 -serviceMonitor: - enabled: true - additionalLabels: - release: prometheus - namespace: prometheus - # Disable default config - use secret instead config: enabled: false diff --git a/alertmanager/kustomization.yaml b/alertmanager/kustomization.yaml index 7d7a3be..31e0fad 100644 --- a/alertmanager/kustomization.yaml +++ b/alertmanager/kustomization.yaml @@ -2,4 +2,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ingress.yaml + - servicemonitor.yaml - vault/alertmanager-secrets.yaml diff --git a/alertmanager/servicemonitor.yaml b/alertmanager/servicemonitor.yaml new file mode 100644 index 0000000..8d6ec84 --- /dev/null +++ b/alertmanager/servicemonitor.yaml @@ -0,0 +1,27 @@ +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: alertmanager + namespace: prometheus + labels: + release: prometheus +spec: + endpoints: + - port: http + path: /metrics + scheme: http + interval: 60s + relabelings: + - targetLabel: cluster + replacement: "mayne-cluster" + # Drop alertmanager-headless to avoid duplicate metrics + - sourceLabels: [__meta_kubernetes_service_name] + regex: alertmanager-headless + action: drop + namespaceSelector: + matchNames: + - alertmanager + selector: + matchLabels: + app.kubernetes.io/instance: alertmanager + app.kubernetes.io/name: alertmanager