Matriz de escalação - alertar mais pessoas
Objetivo: Configurar uma matriz de escalonamento que, após um certo tempo de um incidente (queda) não resolvido, envie um alerta a outras pessoas responsáveis ou para outro canal.
Quando usar o escalonamento
Cenário comum: o seu serviço cai à noite, o responsável de plantão principal não reage em 15 minutos - o sistema deve avisar automaticamente o chefe de turno e, após mais uma hora, também o gestor. O escalonamento evita que uma queda passe despercebida.
Passo 1: Crie uma política de escalonamento
- Vá a Dashboard → Escalonamento (ou ao endereço
/dashboard/escalation). - Preencha um nome (por exemplo "Plantão noturno") e clique em + Nova política.
Passo 2: Adicione passos
Uma política é uma sequência de passos. Cada passo contém:
- Atraso (min) - após quantos minutos do início do incidente o passo deve ser acionado.
0significa imediatamente. - Canal -
E-mailouWebhook(Slack, Discord, o seu próprio endpoint de destino). - Destinatários - endereços de e-mail separados por vírgula, ou um endereço de webhook.
- Nota - opcional, o que o destinatário deve fazer.
Exemplo de uma política de 3 níveis:
- Passo 1: 0 min, e-mail para o responsável de plantão principal.
- Passo 2: 15 min, e-mail para o chefe de turno.
- Passo 3: 60 min, webhook do Slack para o canal #ops-emergency.
Passo 3: Atribua a política aos monitores
Pode atribuir uma política:
- Globalmente - com o botão "Definir como predefinida", é usada para todos os seus monitores que não tenham uma própria.
- Para um monitor específico - ao criar ou editar um monitor, selecione uma política concreta.
Confirmação do incidente (ACK)
Cada alerta de escalonamento contém uma ligação ACK (acknowledge, ou seja "vi e estou a tratar disto"). Basta clicar nela e:
- Os passos de escalonamento seguintes param.
- No sistema fica guardado quem e quando confirmou o incidente.
- Os restantes no mesmo passo deixam de receber mais mensagens de escalonamento para este incidente.
A ligação ACK não exige iniciar sessão - está assinada com um token único (uma cadeia de utilização única), pelo que ninguém mais a pode usar indevidamente. Após a resolução do incidente (o monitor regressa ao estado UP), o escalonamento também termina automaticamente.
Formato do webhook
Para o Slack, Discord, Microsoft Teams e o seu próprio endpoint, enviamos o pedido com o método POST. No Slack, Discord e Teams formatamos o payload de forma nativa (Block Kit / Embed / Adaptive Card). Nos restantes endereços (endpoint próprio) enviamos um JSON genérico:
{
"event": "incident_escalation",
"monitor": {
"name": "Site de produção",
"target": "https://example.com",
"url": "https://epulz.io/dashboard/monitor/42"
},
"message": "ESCALATION step 2 (delay 15 min): e-mail para o chefe de turno",
"timestamp": "2026-05-31T14:33:45+00:00",
"source": "epulzio"
}
O campo event tem, no escalonamento, o valor incident_escalation. No campo message está uma descrição em texto do passo (ordem do passo, atraso e descrição da ação). Outros campos (incident_id, step_order, ack_url) não existem no nível superior - a ligação ACK faz parte da mensagem formatada no Slack/Discord/Teams. Para o Slack basta o endereço do Incoming webhook. Num endereço do Discord não é necessário o parâmetro ?wait=true.
Perguntas frequentes
O que acontece se o incidente durar mais do que o último passo?
Não são enviados mais escalonamentos. Para lembretes repetidos, adicione outro passo com um atraso maior (por exemplo 240 min).
O escalonamento também funciona durante o modo silencioso (Quiet hours)?
Sim. O escalonamento segue pelo seu próprio canal (e-mail, webhook) e o modo silencioso não se aplica a ele - este destina-se apenas aos alertas primários.
Posso testar a política sem esperar por uma queda real?
O mais simples: crie um monitor de teste com o endereço https://test-bad-domain.invalid, atribua-lhe uma política com um atraso curto (1 min) e observe os e-mails.