Monitore Filas, Comandos e Agendadores Laravel em Qualquer Driver com o Vigilance
Este artigo foi publicado originalmente no Laravel News por Yannick Lyn Fatt.
O Vigilance é um dashboard de monitoramento que acompanha como seu trabalho em segundo plano realmente se comporta em produção. Ele registra jobs, comandos artisan e tarefas agendadas conforme eles passam da fila para a execução e finalização (ou falha), capturando parâmetros, códigos de saída e rastreios de exceção ao longo do caminho. O diferencial em relação a outras ferramentas é que ele não se importa com o driver de fila utilizado: database, Redis, SQS, Beanstalkd e sync — todos os relatórios convergem para o mesmo lugar.
Um Registro por Execução, em Qualquer Driver
Enquanto o Horizon monitora apenas filas Redis e o Telescope é voltado para depuração local, o Vigilance escreve uma única linha para cada execução e a atualiza durante todo o ciclo de vida. Isso resulta em uma linha do tempo única que cobre jobs na fila, comandos invocados via CLI ou agendador, e o próprio scheduler. Dados sensíveis (secrets) são removidos automaticamente antes do armazenamento.
Como armazenar cada execução bem-sucedida pode ser caro, o Vigilance utiliza amostragem no momento do despacho e mantém todas as falhas, independentemente da taxa de amostragem. Manter uma porcentagem de execuções bem-sucedidas enquanto retém todas as falhas mantém o volume gerenciável em filas ocupadas. Além disso, é possível apontar a conexão de banco de dados para uma instância separada, isolando as gravações de monitoramento da conexão principal da aplicação.
Despacho Manual a Partir de Formulários Tipados
Ao ativar os recursos de controle, o Vigilance permite despachar jobs diretamente do dashboard. Ao marcar um job com o contrato Dispatchable, o dashboard lê a assinatura do construtor via reflexão para construir um formulário automaticamente. O formulário gerado lida com tipos escalares, enums, datas e vinculação de modelos Eloquent. O mesmo mecanismo permite executar comandos artisan permitidos através da interface do usuário.
Métricas Personalizadas e Core Web Vitals
Além do histórico de execução, o Vigilance coleta dois tipos de dados da aplicação. Métricas de negócio utilizam uma API de contador e medidor (gauge) que você chama em seu próprio código. Para dados de front-end, a ativação do Real User Monitoring (RUM) e a adição de uma diretiva Blade ao seu layout coleta os Core Web Vitals (LCP, INP, CLS, FCP, TTFB) de visitantes reais. Esses dados alimentam as visualizações de desempenho do dashboard, relatando latências e taxas de erro.
Instalação e Segurança
O dashboard é restrito ao ambiente local até que você autorize explicitamente o acesso. É possível definir quem pode visualizá-lo através de um callback no método boot() de um service provider ou via Gate. Por padrão, o dashboard fica disponível em /vigilance.
O Vigilance vai além do histórico de filas, agrupando exceções em uma caixa de entrada de problemas identificados, rastreando objetivos de nível de serviço (SLOs) com orçamentos de erro e monitorando a saúde das releases ao comparar taxas de erro antes e depois de um deploy. Outros recursos incluem rastreamento de requisições e jobs, verificações de uptime e um explorador de logs pesquisável.
Você pode ler a documentação e acessar o código-fonte no GitHub.