Monitorando scripts
Uma amostra do AppSignal é composta por dois elementos: uma transaction e events. Antes de reportar eventos com nossos helpers de instrumentação, você precisa primeiro criar uma transaction. Use o helperAppsignal.monitor para criar uma transaction e mantê-la ativa durante a duração do bloco fornecido.
O helper monitor reportará o bloco de código instrumentado como medições de desempenho listadas na seção Performance da interface do AppSignal, agrupadas por nome de action. Ele rastreará a duração do bloco e reportará exceções que ocorrerem dentro.
monitor aceita dois argumentos nomeados:
namespace(Opcional): Personaliza o namespace da transaction. O padrão é “web”.action(Obrigatório): Agrupamos as amostras do script por este nome de action para criação de issues e notificações. Sem um nome de action, nenhuma informação sobre o bloco monitorado é reportada, porque não sabemos como agrupar os dados.
Defina o nome da action depois
O argumentoaction do helper Appsignal.monitor pode ser deixado como nil ou definido explicitamente como :set_later, mas apenas se o helper Appsignal.set_action ainda for chamado dentro do bloco para definir o nome da action. Sem um nome de action, nenhum dado é reportado sobre o bloco instrumentado. Este método de definir o nome da action pode ser útil se o nome da action só puder ser determinado em uma etapa de processamento dentro do bloco.
Eventos de instrumentação
Por padrão, a gem Ruby reportará eventos das integrações suportadas. Esses eventos aparecerão na timeline de eventos. Use nossos helpers de instrumentação para adicionar seus próprios eventos à timeline de eventos. Isso cria um detalhamento mais detalhado do que está acontecendo dentro do bloco monitorado.Requisito de parada
Para scripts rodando em hosts de curta duração, é necessário parar a gem AppSignal para Ruby antes que o script termine. Isso garantirá que ele reporte os dados do script ao AppSignal antes que o host seja desligado. Esse comportamento só é necessário em cenários como:- Quando uma tarefa agendada (um cron job) é executada por um serviço de hospedagem.
- Quando um script é executado em um container que inicia para rodar esse script e é desligado quando o script termina.
- Quando um script é executado em um Heroku runner, ou provedores de hospedagem similares.
enable_at_exit_hook.
Garanta que esta opção esteja definida como true para scripts que requerem que o AppSignal seja parado, se não for detectado automaticamente.
Pode ser necessário adicionar uma chamada adicional de sleep de alguns segundos para garantir que haja tempo suficiente para enviar todos os dados. Use o exemplo de uso de at_exit do código abaixo se necessário.
Helper monitor and stop
Se o seu processo sempre executa uma tarefa/job e termina imediatamente depois, você pode usar o helperAppsignal.monitor_and_stop. Isso garantirá que o AppSignal pare automaticamente após o bloco ser executado.