groups:
  - name: geosegbar_production_alerts
    interval: 30s
    rules:
      - alert: APIDown
        expr: up{job="geosegbar-api"} == 0
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "API GeoSegBar PRODUÇÃO está DOWN"
          description: "A API não está respondendo há mais de 2 minutos"

      - alert: HighErrorRate
        expr: rate(http_server_requests_seconds_count{status=~"5.."}[10m]) > 0.02
        for: 10m
        labels:
          severity: critical
        annotations:
          summary: "Taxa de erros 5xx alta em PRODUÇÃO"
          description: "Taxa de erros 5xx acima de 2% nos últimos 10 minutos"

      - alert: HighMemoryUsage
        expr: (jvm_memory_used_bytes{area="heap"} / jvm_memory_max_bytes{area="heap"}) > 0.85
        for: 10m
        labels:
          severity: warning
        annotations:
          summary: "Uso de memória heap alto em PRODUÇÃO"
          description: "Uso de memória heap acima de 85%"

      - alert: DatabaseDown
        expr: up{job="postgres"} == 0
        for: 1m
        labels:
          severity: critical
        annotations:
          summary: "PostgreSQL está DOWN"
          description: "Banco de dados PostgreSQL não está respondendo"

      - alert: RedisDown
        expr: up{job="redis"} == 0
        for: 1m
        labels:
          severity: critical
        annotations:
          summary: "Redis está DOWN"
          description: "Redis Cache não está respondendo"
