Voltar ao portfólio
EN PT ES
Estudo de caso · Confiabilidade · agosto de 2026

Tornando jobs agendados observáveis

Um wrapper de execução reutilizável tornou visíveis os jobs de vida curta sem alterar sua lógica de negócio nem deixar que falhas de telemetria os derrubassem.

Por Vitor SchiavoAtualizado em outubro de 2026~4 min de leitura
A solução em resumoUm job que desaparece ainda precisa de um sinal de saúde duradouro.
Job agendadoEncapsule a execução e preserve o exit code
Sinais persistentesEnvie conclusão e timestamps
Regras de atualidadeAlerte de acordo com o agendamento

24 de 26 entradas ativas foram instrumentadas. Os limiares de atualidade refletem cada agendamento; falhas de telemetria não substituem o resultado do job.

Contribuição em resumo

Minha responsabilidade
Wrapper de execução, exporter somente leitura, instrumentação de crontab e regras cientes do agendamento.
Escopo
24 de 26 entradas de cron ativas, 16 regras do Prometheus e um dashboard de 12 painéis.
Colaboração & limites
Instrumentei a execução dos jobs sem substituir sua lógica de negócio nem seu exit code real.
Resultado
Timestamps de conclusão persistentes tornaram observáveis os jobs de vida curta; a falha do monitoramento não sobrepôs o resultado do job.

O problema

Uma frota legada de cron processava jobs de negócio, mas não expunha nenhum sinal confiável de liveness ou de profundidade de fila. Investigar questões de entrega significava vasculhar grandes arquivos de log e escrever consultas no banco de dados. Um job morto podia permanecer invisível porque processos de vida curta desaparecem antes que um scraper os veja.

Minha contribuição

Construí um wrapper reutilizável, um exporter de métricas de negócio somente leitura e um instrumentador de crontab idempotente. A implantação cobriu 24 de 26 entradas de cron ativas e adicionou 16 regras do Prometheus e um dashboard do Grafana de 12 painéis.

Tornar o silêncio mensurável

O principal sinal de saúde era o timestamp da última execução bem-sucedida. Uma execução que falhou ou que não ocorreu não deve avançá-lo. Os limiares foram agrupados por agendamento porque uma tarefa mensal e um processador que roda a cada minuto não podem compartilhar o mesmo orçamento de atraso.

O transporte existente via Pushgateway foi reaproveitado. Um manifesto de substituição não teria agregado nenhuma capacidade útil e arriscaria alterar um limite de ingress não relacionado, então deixei essa infraestrutura no lugar.

24 / 26Entradas de cron ativas instrumentadas
16Regras cientes do agendamento validadas
12Painéis do dashboard

Proteger o job de negócio do seu próprio monitoramento

O wrapper propagava o exit code real do processo. Um job que falhava não atualizava seu timestamp de sucesso. Quando o gateway estava inacessível, um job de negócio bem-sucedido ainda assim era bem-sucedido. Um processo substituído que recebia SIGTERM era tratado separadamente de uma falha de aplicação, espelhando como os processadores existentes que rodam a cada minuto já funcionavam.

Resultados e medição

A implantação preservou a contagem de entradas ativas do crontab, verificou o caminho da VM até o gateway, validou todas as 16 regras com o promtool e conferiu o processamento de negócio após a mudança. Os testes cobriram sucesso, um exit code de falha, SIGTERM e um gateway indisponível.

A cobertura foi parcial de forma intencional: duas entradas ativas estavam fora do modelo de script do wrapper. A confirmação do provedor externo e a entrega efetivamente visível ao cliente também foram mantidas distintas; este dashboard não prova que um sistema externo exibiu cada resultado.

A lição

Instrumentar jobs legados é útil quando se preserva o comportamento deles. Projete o caminho de falha da telemetria de forma tão deliberada quanto o caminho de sucesso.

Decisões e próximos passos

Uma visão retrospectiva da abordagem e seus limites. A próxima melhoria é uma proposta, não um resultado entregue.

Alternativa e justificativa

Fazer scraping de um processo efêmero pode perdê-lo por completo. Persistir sinais de conclusão preserva a visibilidade após o encerramento.

Trade-off

Uma tarefa mensal e uma tarefa que roda a cada minuto precisam de orçamentos de atualidade diferentes. A telemetria não deve se tornar uma nova dependência do job de negócio.

O que eu melhoraria em seguida

Próxima melhoria: revisar as duas entradas não instrumentadas e exercitar os alertas de execução ausente contra cada classe de agendamento.