Pular para o conteúdo principal

Escalação de Alertas

A escalação é um mecanismo automático que destaca alertas não tratados dentro do prazo esperado, garantindo que nenhuma ocorrência passe despercebida.

Como funciona

Um job agendado (EscalateUnacknowledgedAlertsJob) roda a cada 30 segundos — para cada site ativo — e procura alertas que:

  1. Ainda estão com status Ativo
  2. Não foram reconhecidos por nenhum operador
  3. Ainda não foram escalados (is_escalated = false)
  4. Ultrapassaram o tempo limite de escalação definido para o tipo de alerta

Quando essas condições são atendidas, o alerta é marcado como escalado. A verificação só considera tipos de alerta cujo tratador (handler) declara ser escalável.

Tempos de escalação por tipo

Cada tipo de alerta tem seu próprio tempo de escalação, definido pelo módulo que o registrou:

Tipo de alertaTempoEscalável
Botão de Pânico2 minSim
Dispositivo OfflineConfigurávelSim
Antena OfflineConfigurávelSim
Bateria BaixaConfigurávelSim
Entrada em Zona RestritaConfigurávelSim
Atenção

Alertas de Botão de Pânico têm apenas 2 minutos antes de serem escalados. Isso reflete a criticidade do cenário — uma pessoa em emergência precisa de resposta imediata.

Configuração do prazo

O tempo limite de escalação é definido pela variável LOCATION_ESCALATION_TIMEOUT em config/location.php (padrão 120 segundos = 2 minutos). Cada tratador de alerta pode expor seu próprio prazo; os tempos exatos por tipo dependem do módulo que registrou o alerta.

O que acontece na escalação

Quando um alerta é escalado:

  1. O campo is_escalated é marcado como verdadeiro
  2. Um evento de severidade alta é registrado (AlertEscalated)
  3. O evento é transmitido via WebSocket para todos os operadores conectados
  4. O alerta ganha destaque visual na interface (badge de escalação)

Impacto visual

Alertas escalados são diferenciados visualmente:

  • Badge "Escalado" — Exibido na lista de alertas e nos detalhes
  • Severidade elevada — O evento de escalação é registrado como severidade Alta
  • Registro detalhado — O evento AlertEscalated inclui: tipo do alerta, horário em que foi disparado (triggered_at), tempo decorrido em segundos, a zona (id e nome) e a identificação da origem do alerta

Como prevenir escalação

A escalação é prevenida quando um operador reconhece o alerta dentro do prazo:

Alerta criado → Reconhecido em < 2 min → NÃO é escalado ✓
Alerta criado → Sem ação por > 2 min → ESCALADO ⚠

Após a escalação, o alerta ainda pode ser reconhecido e resolvido normalmente. A flag de escalação é apenas um indicador histórico.

Monitoramento

Os alertas escalados podem ser filtrados na lista de alertas e aparecem nos relatórios de performance, permitindo análise de tempos de resposta da equipe de operação.