Monitor heartbeat
Avisa quando uma tarefa agendada deixa de rodar, a partir do sinal que a própria tarefa envia.
Atualizado em
Neste artigo
Os outros monitores vão até o seu serviço. O heartbeat faz o contrário: a sua tarefa (um backup, uma rotina do
cron, um processo em lote) chama um endereço exclusivo do Notifex ao terminar. Se o sinal não chega no prazo,
a tarefa parou, travou ou falhou.
Criar o monitor#
- Em Monitores, clique em Novo monitor e escolha Heartbeat.
- Preencha Nome.
- Na seção Sinal, preencha Período (segundos) e Carência (segundos).
- Em Alertas, escolha para onde vão os avisos.
- Clique em Criar monitor. O app abre o detalhe do monitor, com o endereço que a tarefa deve chamar.
| Campo | O que é |
|---|---|
| Período (segundos) | O intervalo esperado entre os sinais, de 30 segundos a 30 dias. Padrão: 300 (5 minutos). |
| Carência (segundos) | Um tempo extra antes de considerar o sinal perdido, de 0 a 86400 (1 dia). Padrão: 60. |
Abaixo de cada campo, o formulário mostra o valor por extenso ("Equivale a 1 dia."). Para uma tarefa diária,
use 86400 no período e uma carência que cubra a variação de duração da tarefa. No detalhe do monitor, a
carência aparece como Tolerância.
O heartbeat não tem Intervalo, Tempo limite nem Confirmações.
O prazo#
Cada sinal recebido marca um novo prazo: o momento do sinal mais o período mais a carência. Com período de 1 dia e carência de 1 hora, um sinal recebido às 3h de hoje vale até as 4h de amanhã.
- Se o próximo sinal chega antes do prazo, o monitor continua no ar e o prazo recomeça.
- Se o prazo passa sem sinal, a checagem falha com Heartbeat não recebido e o incidente abre na hora.
- Enquanto o sinal não volta, o Notifex registra uma nova falha a cada período.
- O próximo sinal que chegar resolve o incidente e o monitor volta a no ar.
Atenção
O heartbeat não usa confirmação: o primeiro prazo perdido já abre o incidente e dispara o alerta. Escolha a carência pensando nisso.
O estado pendente#
O monitor fica pendente até o primeiro sinal chegar. Enquanto isso não há prazo correndo e nenhum incidente é aberto, por mais tempo que passe. O detalhe mostra O monitor fica pendente até o primeiro ping chegar.
Nota
Um heartbeat que nunca recebeu sinal não avisa nada. Depois de configurar a tarefa, confira no detalhe se o Último ping deixou de mostrar "nenhum ping recebido ainda" e passou a mostrar há quanto tempo o sinal chegou (por exemplo, "agora" ou "há 4 min").
O endereço de ping#
Cada monitor heartbeat tem o seu próprio endereço, no formato
https://api-public.notifex.com.br/heartbeat/<seu-token>. Ele aparece no detalhe do monitor, na seção
Sinal (heartbeat).
- Abra o detalhe do monitor.
- Em Endereço de ping, clique em Copiar.
- Configure a tarefa para chamar esse endereço ao fim de cada execução.
O endereço aceita GET, POST e HEAD. O corpo de um POST é ignorado. Um endereço que não existe (de um
monitor excluído, por exemplo) responde com o status 404.
Atenção
Quem tem o endereço consegue enviar o sinal: trate-o como uma senha. Só quem pode editar monitores vê o endereço no app; para as demais pessoas da equipe ele aparece como "oculto".
Exemplos com curl#
O próprio detalhe traz o Exemplo com curl, pronto para copiar:
curl -fsS -m 10 --retry 3 https://api-public.notifex.com.br/heartbeat/<seu-token>-fsS faz o curl ficar quieto, mas falhar e mostrar o erro se a resposta não for de sucesso; -m 10 limita a
chamada a 10 segundos; --retry 3 tenta de novo até 3 vezes.
Numa linha do cron, depois do comando da tarefa:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 -o /dev/null https://api-public.notifex.com.br/heartbeat/<seu-token>O -o /dev/null descarta o corpo da resposta: sem ele, o cron pode mandar esse corpo por e-mail a cada
execução, se a máquina tiver um servidor de e-mail local. O && faz o sinal sair só quando a tarefa termina sem erro: se o backup falhar, o sinal não chega e o Notifex
avisa.
Num script, como último passo:
#!/usr/bin/env bash
set -euo pipefail
/usr/local/bin/gerar-relatorio.sh
/usr/local/bin/enviar-relatorio.sh
curl -fsS -m 10 --retry 3 https://api-public.notifex.com.br/heartbeat/<seu-token>Com set -e, o script para no primeiro comando que falhar e a chamada final não acontece.
Pausar e editar#
- Com o monitor pausado, os sinais continuam sendo aceitos, mas não são registrados.
- Ao retomar um monitor que já recebeu sinal, o prazo conta a partir da retomada. Se ele nunca recebeu sinal, continua pendente.
- Num monitor que já recebeu sinal, mudar o período ou a carência recomeça o prazo a partir da alteração. O endereço de ping não muda ao editar.
O mesmo endereço aceita até 60 chamadas por minuto vindas do mesmo IP.
Não encontrou o que procurava?
Escreva para a gente pelo formulário de contato do site.