Alertmanager est un outil qui utilise prometheus pour générer des alertes.
Dans certains cas, les alertes peuvent ne pas être utiles, par exemple sur un cas de CPUThrotlingHigh dans Kubernetes.
Cette alerte Kubernetes signifie que le conteneur veut dépasser son quota de CPU, différant de ce fait les appels CPU sur le temps. Pour un service peu appelé, il est possible de mettre une limite CPU basse et que lors d’un appel ceux-ci soient différés, et donc l’application devient plus lente, mais acceptable, néanmoins cela peut déclencher une alerte Prometheus.
Pour résoudre ce cas nous avons besoin côté AlertManager de 2 éléments:
Voici la configuration nécessaire:
route:
group_by: [alertname]
repeat_interval: 12h
group_wait: 2m
group_interval: 5m
receiver: "slack-default"
routes:
# blackhole
- receiver: "blackhole"
match_re:
namespace: "prometheus-k8s"
container: "kube-rbac-proxy"
alertname: "CPUThrottlingHigh"
continue: false
# Other filters
- receiver: "platform"
group_interval: 15m
match_re:
severity: (critical|warning)
environment: (test|staging|production|preprod|prod)
namespace: (kube-system|fluentd|traefik-ingress-controller|prometheus-k8s|opa-gatekeeper).*
alertname: (KubeCPUQuotaOvercommit|KubeMemoryQuotaOvercommit|KubeQuotaExceeded|CPUThrottlingHigh).*
continue: false
receivers:
- name: blackhole
# France
- name: "platform"
slack_configs:
- api_url: 'url'
send_resolved: true
channel: "#alerts"
title: '{{ template "slack.title" . }}'
text: '{{ template "slack.text" . }}'
Enjoy !