Integrações
Aplicações Rails
Para aplicações Rails, certifique-se de depender da task:environment. Isso carrega a aplicação Rails na memória e inicia o AppSignal como parte da aplicação.
Rakefile
ORakefile da sua aplicação Rails deve se parecer com o exemplo abaixo. Isso já deveria estar acontecendo, não há necessidade de alterá-lo.
< 1, você precisará requerer a integração Rake manualmente. Ela é carregada automaticamente para a versão 1.x e superiores.)
Aplicações Ruby
Para aplicações Ruby puras, alguns passos extras são necessários para carregar o AppSignal. O AppSignal precisa ser requerido, configurado e carregado. Veja também nosso guia de integração.Monitorando performance de Rake tasks
Para monitorar a performance de Rake tasks e todos os eventos que ocorrem na task, configure o AppSignal com a opção de configuraçãoenable_rake_performance_instrumentation definida como true.
Com esta funcionalidade habilitada, todas as Rake tasks serão instrumentadas e contadas em direção ao seu plano.
Requisito de stop
Para Rake tasks executando em hosts de curta duração, é necessário parar a gem AppSignal Ruby antes que o processo Rake termine. Isso garantirá que ele reporte os dados das Rake tasks ao AppSignal antes que o host seja desligado. Esse comportamento é necessário apenas em cenários como:- Quando uma Rake task agendada (um cron job) é executada por um serviço de hospedagem.
- Quando uma Rake task é executada em um container que inicia para executar esta Rake task e desliga quando a Rake task termina.
- Quando uma Rake task é executada em um Heroku runner ou provedores de hospedagem similares.
enable_at_exit_hook.
Certifique-se de que esta opção esteja definida como true para scripts que exigem que o AppSignal seja parado, caso não seja 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.
Requisito de stop legado
Ao executar uma única Rake task em um host de curta duração (por exemplo, com containers Docker, Kubernetes ou Heroku schedulers) existem três requisitos. Isso garante que a extensão AppSignal do app tenha tempo de descarregar os dados para o agent e o agent tenha tempo de enviar os dados para a nossa API antes de desligar (o container). Os requisitos são:Appsignal.stopdeve ser chamado na Rake task.- Quando o performance monitoring de Rake task está habilitado, isso é feito automaticamente para todas as tasks.
running_in_containerdeve ser definido como true na config.- Para a maioria dos tipos de container,
running_in_containeré automaticamente definido como true quando detectado; para outros, configuração manual é necessária.
- Para a maioria dos tipos de container,
- Um sleep de, por exemplo, 10 segundos para dar tempo ao AppSignal agent de enviar os dados
Appsignal.stop é chamado no Rakefile:
Appsignal.stop descarrega todos os dados de transaction atualmente na extensão AppSignal para o nosso agent.
Em seguida, ele dorme por 10 segundos para permitir que o agent envie os dados antes de desligar.