apiVersion: 1 groups: # ────────────────────────────────────────────────────────────────── # Alertas de infraestrutura (baseados em métricas do Prometheus) # ────────────────────────────────────────────────────────────────── - name: SOC Alerts folder: SOC interval: 30s rules: - uid: cpu_high title: CPU ALTA condition: A data: - refId: A datasourceUid: PBFA97CFB590B2093 relativeTimeRange: from: 300 to: 0 model: expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) noDataState: OK execErrState: OK for: 2m annotations: description: "CPU acima de 80%" - uid: falco_critical title: FALCO CRITICAL condition: A data: - refId: A datasourceUid: P8E80F9AEF21F6940 relativeTimeRange: from: 300 to: 0 model: expr: '{job="falco"} |= "CRITICAL"' for: 1m annotations: description: "Evento crítico detectado pelo Falco" - uid: crypto_attack title: POSSÍVEL CRYPTOJACKING condition: A data: - refId: A datasourceUid: PBFA97CFB590B2093 relativeTimeRange: from: 300 to: 0 model: expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) - refId: B datasourceUid: P8E80F9AEF21F6940 relativeTimeRange: from: 300 to: 0 model: expr: '{job="falco"} |= "xmrig"' for: 1m annotations: description: "CPU alta + minerador detectado" # ────────────────────────────────────────────────────────────────── # Alertas de aplicação (baseados em logs dos containers via Loki) # Datasource: Loki (uid: P8E80F9AEF21F6940) # Container monitorado: newwhats-backend-prod # ────────────────────────────────────────────────────────────────── - name: App Alerts folder: SOC interval: 60s rules: - uid: backend_unhandled_exception title: BACKEND - Exceção Não Tratada condition: A data: - refId: A datasourceUid: P8E80F9AEF21F6940 relativeTimeRange: from: 300 to: 0 model: expr: | count_over_time( {container="newwhats-backend-prod"} |~ "(?i)(unhandledRejection|uncaughtException|TypeError: Cannot|ReferenceError:|Cannot read properties)" [5m] ) > 0 noDataState: OK execErrState: OK for: 0s annotations: summary: "Exceção não tratada detectada no backend WhatsApp" description: "O container newwhats-backend-prod emitiu uma exceção crítica não tratada. Verifique os logs e o código-fonte." labels: severity: critical - uid: backend_prisma_p2002 title: BACKEND - Colisão Prisma P2002 condition: A data: - refId: A datasourceUid: P8E80F9AEF21F6940 relativeTimeRange: from: 300 to: 0 model: expr: | count_over_time( {container="newwhats-backend-prod"} |= "P2002" [5m] ) > 0 noDataState: OK execErrState: OK for: 2m annotations: summary: "Violação de unicidade P2002 detectada no banco de dados" description: "Prisma está relatando violações de constraint única (P2002). Pode indicar race condition em mensagens concorrentes." labels: severity: warning - uid: backend_http_5xx title: BACKEND - Erros HTTP 5xx condition: A data: - refId: A datasourceUid: P8E80F9AEF21F6940 relativeTimeRange: from: 300 to: 0 model: expr: | count_over_time( {container="newwhats-backend-prod"} |~ "statusCode.*5[0-9]{2}|HTTP.*5[0-9]{2}|\"status\":5[0-9]{2}" [5m] ) > 0 noDataState: OK execErrState: OK for: 2m annotations: summary: "Erros HTTP 5xx detectados no backend" description: "O backend está retornando erros 5xx. Pode indicar falha interna, banco de dados indisponível ou bug de runtime." labels: severity: warning