Adapters suportados
A integração do Active Job suporta todos os adapters do Active Job. Ela também pode oferecer suporte para adapters não listados naquela página, que são acessíveis através de uma gem separada. No entanto, observe que esses adapters não foram testados. Adapters sem uma integração dedicada do AppSignal são monitorados através da instrumentation do Active Job, como o GoodJob.Integração com bibliotecas suportadas pelo AppSignal
As seguintes bibliotecas de background jobs que o AppSignal suporta são automaticamente integradas com o Active Job, permitindo que o AppSignal te dê insights de desempenho mais aprofundados:Reportar erros no descarte do job
Defina a opção de configuraçãoactivejob_report_errors como discard para reportar erros apenas quando um job for descartado. Quando um job é descartado, todas as tentativas de retry do job foram esgotadas e o job não é mais reprocessado. Leia a documentação do Active Job para saber mais sobre tratamento de exceptions do Active Job e retries de jobs com falha.
Enqueue instrumentation
Enfileirar um job através do Active Job registra um eventenqueue.active_job, com o título baseado no job sendo enfileirado. Quando um job é enfileirado através de um adapter que o AppSignal também instrumenta, como Sidekiq ou Resque, o AppSignal suprime o event de enqueue do próprio adapter e registra o enqueue apenas uma vez como o event do Active Job.
O AppSignal registra events de enqueue na event timeline da transaction ativa, por exemplo, quando você enfileira um job a partir de uma requisição web ou de dentro de outro job. Ele só registra esses events quando uma transaction está ativa, então enfileirar um job fora de uma transaction não registra nada.
Para parar de registrar events de enqueue em todas as integrações de background job, defina a opção de configuração enable_job_enqueue_instrumentation como false. Isso não afeta a instrumentação dos jobs em si.
Metadados
O AppSignal coleta os seguintes metadados para jobs do Active Job:
*A partir do Rails versão 6, queue times são reportados para o namespace de onde são reportados e podem ser visualizados nos Gráficos de Performance do AppSignal.
O AppSignal usa os metadados do Active Job para te dar insights contextuais mais profundos sobre o desempenho do job. Ao inspecionar traces do Active Job no AppSignal:
- O job name agrupa os traces do job na página de Performance:

- Os metadados (exceto job name e events) estão disponíveis como tags filtráveis na página do trace:

- Os spans do job aparecem na timeline do trace na página do trace:

Intelligence dashboard
Quando o AppSignal recebe métricas do Active Job, ele cria um Intelligence dashboard do Active Job, disponível na seção de dashboards do app do AppSignal. Quando uma versão mais recente do dashboard está disponível, um banner no topo oferece para atualizá-lo.
O Intelligence dashboard do Active Job no AppSignal
Os gráficos Duration e Throughput usam
trace_duration em contas que já migraram para métricas de trace. Contas que ainda não migraram veem esses gráficos usando transaction_duration.
Cada tag é representada com uma linha colorida no gráfico.
Gráfico Duration per job class
O gráfico Duration per job class mostra a quantidade de tempo que os jobs levaram para executar, agrupados pela classe que define o job. Você pode usar este gráfico para monitorar o desempenho dos jobs, por classe, dando uma visão geral do desempenho dos jobs e permitindo identificar e investigar rapidamente picos no tempo de duração.Gráfico Job status per queue
O gráfico Job status per queue with priority mostra o número de jobs que foram executados, agrupados pelo status resultante, pela fila em que foram enfileirados. Você pode usar este gráfico para monitorar contagens de erros e desempenho de jobs com base na fila, identificar gargalos e otimizar seus background jobs para escalabilidade.Gráfico Job status per queue with priority
O gráfico Job status per queue with priority mostra o número de jobs que foram executados, agrupados pelo status resultante, pela fila em que foram enfileirados e pela prioridade que lhes foi atribuída. Você pode usar este gráfico para monitorar contagens de erros e desempenho de jobs com base em fila e prioridade, identificar gargalos e otimizar seus background jobs para escalabilidade.Gráfico Queue time per queue
O gráfico Queue time per queue mostra quanto tempo os jobs esperaram em cada fila antes de começar. Ele mostra a média, o percentil 90 e o percentil 95. Você pode usar este gráfico para identificar filas atrasadas e decidir se uma fila precisa de mais workers.Gráfico Throughput per job class
O gráfico Throughput per job class mostra a quantidade de jobs que foram executados, agrupados pela classe que define o job. Você pode usar este gráfico para monitorar quantos jobs são executados, agrupados pela classe que define o job.Atributos do span
Somente no modo collector: isso se aplica quando o AppSignal para Ruby é executado no modo collector. Nos demais casos, não tem efeito.
messaging.system— a biblioteca de filas.messaging.destination.name— a fila na qual o job foi colocado.messaging.operation.type— se o span é o enqueue ou a execução do job.
error.type, a classe do erro.
Tracing distribuído
Somente no modo collector: isso se aplica quando o AppSignal para Ruby é executado no modo collector. Nos demais casos, não tem efeito.
Veja também
- Solid Queue: execute background jobs no seu banco de dados: use o banco de dados que você já mantém como backend do Active Job. O Rails 8 já configura isso em novas aplicações; este tutorial cobre como adicioná-lo a uma aplicação existente.
- Sidekiq batches: execute jobs em paralelo e depois aja: divida uma unidade de trabalho em vários jobs e execute um callback quando todos os jobs tiverem sido concluídos com sucesso.