Saltar para o conteúdo

Heartbeat

Monitorização de tarefas cron e em segundo plano

Ao contrário: a tua tarefa chama-nos.

Para que serve

Tudo o resto aqui vai e verifica. Este espera. O teu backup, o teu import noturno, o teu worker de fila chama um URL quando termina, e alertamos quando uma chamada não chega.

É a única forma de monitorizar algo sem endereço para verificar. Uma tarefa de backup que parou há três semanas parece exatamente como uma que correu perfeitamente, visto de fora, até ao dia em que alguém precisa do backup.

O que podes configurar

Tudo abaixo está no formulário quando adicionas um, em todos os planos.

Com que frequência corre
Não com que frequência verificamos: com que frequência a tua tarefa deve chamar. Um backup semanal é algo comum de ter, então este vai até um mês onde os outros param num dia.
Atraso permitido
Quantos minutos de atraso a chamada pode ter. Uma tarefa que corre de hora em hora e demora até vinte minutos pode ter trinta permitidos. Em branco é um décimo do período.
Ping URL
Gerado quando crias o monitor, e mostrado uma vez. Chama-o no final da tua tarefa. Pode ser regenerado, o que desativa o antigo.
Começa a monitorizar um Cinco monitores grátis, enquanto os usares.

Perguntas

Isto é o mesmo que um dead man's switch?

É exatamente isso, aplicado à monitorização de tarefas cron. Tudo o resto neste site vai e verifica algo. Este espera ser informado, e alerta no silêncio, que é a única forma de monitorizar uma tarefa que não tem endereço para verificar nem página para ler.

Quanto atraso pode ter a minha tarefa antes de alertares?

Tão tarde quanto permitires, em minutos. Uma tarefa que corre de hora em hora e demora entre um e vinte minutos pode ter trinta permitidos, então espera-se uma chamada entre sessenta e noventa minutos após a última. Em branco é um décimo do período em que corre, e nunca menos de um minuto: dois minutos de atraso não significam nada para um backup noturno e tudo para uma tarefa que corre a cada cinco. O limite existe porque uma tarefa cron disparar alguns segundos antes ou depois do minuto é normal e nunca deve abrir um incidente.

Como o chamo a partir de uma tarefa cron ou de um script shell?

Busca o URL no final da tarefa, com curl ou wget ou qualquer outra coisa que fale HTTP. GET, POST e HEAD são todos aceites, porque metade do mundo usa um e metade usa outro, e a resposta é um 204 vazio para que uma tarefa noturna não envie uma página HTML ao operador.

Devo chamá-lo no início ou no fim?

No fim, depois do trabalho ter sido bem-sucedido e não antes de começar. Uma chamada no início do script diz que a máquina acordou, o que raramente é o problema. Coloca-o na última linha, depois de qualquer verificação de código de saída que o script já tenha, e o silêncio então significa que a tarefa falhou e não que o host está offline.

E se o URL vazar?

O URL é a credencial, por isso tem 256 bits de aleatoriedade e é mostrado a ti uma vez. Qualquer pessoa que o tenha pode reportar a tua tarefa como saudável, que é a falha que vale a pena preocupar-se e não alguém a ler algo. Regenera-o e o antigo para de funcionar imediatamente.

Uma tarefa que corre semanalmente pode usar isto?

Sim, e é uma das melhores razões para usar. Este intervalo vai até um mês onde os outros tipos de verificação param num dia, porque um backup semanal é algo comum de ter e um backup que parou silenciosamente há três semanas parece idêntico a um que correu perfeitamente, até ao dia em que alguém precisa dele.

Por que não fazer a tarefa enviar-me um email quando falha?

Porque a falha que precisas de saber é aquela onde a tarefa não corre de todo, e uma tarefa que não correu não envia email. Isso cobre um crash dentro do script, uma máquina que reiniciou, uma entrada cron que alguém comentou, um container que nunca começou e uma fila que parou de ser esvaziada. Apanhar erros na tarefa ainda vale a pena; é uma falha diferente do silêncio.