Pular para o conteúdo principal
O AppSignal suporta muitas gems prontas para uso e não requer instrumentação adicional para reportar dados de erro e desempenho. Para scripts personalizados e bibliotecas que não suportamos, você pode adicionar monitoramento seguindo este guia.

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 helper Appsignal.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.
O helper 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 argumento action 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.
Não é necessário parar a gem AppSignal para Ruby se o host no qual o script é iniciado continua rodando após o script ter terminado. O AppSignal é parado automaticamente quando o script termina e um container ou ambiente de hospedagem como o Heroku é detectado. Esse comportamento é controlado pela opção 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

O helper Appsignal.monitor_and_stop foi descontinuado em favor da opção enable_at_exit_hook, que garante que Appsignal.stop seja chamado quando o processo é encerrado, não sempre que o helper Appsignal.monitor_and_stop é chamado. Seu uso é descrito na seção acima desta.Use este helper apenas em versões da gem Ruby que não suportam a opção enable_at_exit_hook.
Se o seu processo sempre executa uma tarefa/job e termina imediatamente depois, você pode usar o helper Appsignal.monitor_and_stop. Isso garantirá que o AppSignal pare automaticamente após o bloco ser executado.