Performance monitoring
Event timeline
Jobs do Que aparecem na event timeline das actions de performance da sua aplicação como eventsperform_job.que.
Incident grouping
O AppSignal detecta os nomes dos jobs a partir do nome da classe do worker Que, sufixado com o nome do métodorun, resultando em algo como MyWorker#run. O AppSignal agrupa jobs por esse nome para performance monitoring e notificações.
Enqueue instrumentation
Enfileirar um job do Que registra um eventenqueue.que, com o título baseado no job sendo enfileirado. Enqueues em lote na versão 2 do Que registram, em vez disso, um único event bulk_enqueue.que.
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.
Suporte ao Active Job
A integração com Que é compatível com Active Job. Atualize para a versão 2.11.0 da gem Ruby ou mais nova para um suporte aprimorado.Aplicação de exemplo
Temos uma aplicação de exemplo no nosso repositório de examples no GitHub.- AppSignal + Rails 5 + Que O exemplo mostra como configurar um app Rails 5 com Que monitorado pelo AppSignal.
Span attributes
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.
Distributed tracing
Somente no modo collector: isso se aplica quando o AppSignal para Ruby é executado no modo collector. Nos demais casos, não tem efeito.
Que.bulk_enqueue são a exceção. Eles não aparecem sob o trace que os enfileirou. Cada job recebe seu próprio trace, vinculado ao enfileiramento em lote, porque um único enfileiramento não pode ser pai de um lote inteiro.
O trace é transportado nas tags do job. Que tem tags a partir da versão 1.0, então nada é transportado no Que 0.x.
Que permite no máximo cinco tags por job. Um job sem espaço restante para o trace é enfileirado sem um.
Leia mais sobre distributed tracing.