5a. Prometheus + Grafana + Alertmanager

hcl

resource "helm_release" "kube_prometheus_stack" {
  chart   = "kube-prometheus-stack"
  set { name = "grafana.adminPassword"; value = var.grafana_password }
}

5b. Custom alert rule

yaml

# manifests/backend/alerts.yaml
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: documind-backend-alerts
  namespace: monitoring
  labels:
    release: kube-prometheus-stack # required or the Operator ignores it
spec:
  groups:
    - name: documind-backend
      rules:
        - alert: BackendDown
          expr: kube_deployment_status_replicas_available{deployment="documind-backend", namespace="documind"} == 0
          for: 2m

bash

kubectl port-forward -n monitoring svc/kube-prometheus-stack-grafana 3000:80

image.png

image.png

image.png