diff --git a/platform/monitoring/application.yaml b/platform/monitoring/application.yaml index 6458ab3..af43a63 100644 --- a/platform/monitoring/application.yaml +++ b/platform/monitoring/application.yaml @@ -12,8 +12,60 @@ spec: targetRevision: 86.2.3 helm: values: | + # ── Alertmanager: LIGADO, e ainda sem canal (2026-09-21) ────────── + # + # Ligar antes de escolher o canal NAO e meia-medida. Sem ele, cada regra + # que dispara vira uma linha na tela do Prometheus e mais nada: sem + # agrupamento, sem silencio, sem historico, e sem inibicao — o mesmo + # incidente aparece dez vezes. Com ele, isso passa a existir. + # + # O `receiver` padrao e o VAZIO de proposito: nada sai daqui ate alguem + # escolher o canal. Um receiver meio configurado (SMTP sem senha, webhook + # sem URL) impede o Alertmanager de SUBIR, e ai nem a tela existe. + # + # Para ligar o canal: `AlertmanagerConfig` com o label `release: monitoring` + # (o seletor abaixo). O modelo, com e-mail e com webhook, esta em + # `platform/monitoring/alertmanager-config-modelo.yaml.tmpl`. alertmanager: - enabled: false + enabled: true + alertmanagerSpec: + # O no e unico e ja tem 78 de 110 pods: o Alertmanager cabe folgado + # nisto, e a retencao padrao de 120h de historico basta. + resources: + requests: { cpu: 10m, memory: 64Mi } + limits: { memory: 192Mi } + alertmanagerConfigSelector: + matchLabels: + release: monitoring + config: + global: + resolve_timeout: 5m + # O `InfoInhibitor` do chart existe para isto: quando um alerta de + # `severity: info` acompanha um `warning`/`critical` do mesmo + # namespace, so o grave e notificado. + inhibit_rules: + - source_matchers: [severity = "critical"] + target_matchers: [severity =~ "warning|info"] + equal: [namespace, alertname] + - source_matchers: [severity = "warning"] + target_matchers: [severity = "info"] + equal: [namespace, alertname] + route: + # Por alerta e por namespace: o que interessa e "o tenant X esta com + # o pod Y fora", e nao dez mensagens do mesmo problema. + group_by: [alertname, namespace] + group_wait: 30s + group_interval: 5m + # 12h: alerta que ninguem resolveu volta a avisar, sem virar spam. + repeat_interval: 12h + receiver: sem-canal + routes: + # O `Watchdog` dispara SEMPRE, de proposito: ele e o pulso que + # prova que o caminho do alerta esta vivo. Notificar seria ruido. + - matchers: [alertname = "Watchdog"] + receiver: sem-canal + receivers: + - name: sem-canal grafana: admin: existingSecret: grafana-admin