Skip to main content
O pacote AppSignal for Elixir instrumenta jobs executados por workers do Oban e coleta métricas sobre o desempenho dos seus jobs. Oban é um sistema de fila e processamento de jobs para Elixir, baseado em PostgreSQL e Ecto. Você pode usar o Oban para agendar jobs para serem executados em segundo plano.

Instrumentação automática

O suporte ao Oban é instrumentado automaticamente, sem necessidade de configuração. Para desabilitar a instrumentação do Oban, defina a opção de configuração instrument_oban como false.
🔎 A opção de configuração instrument_oban foi adicionada na versão 2.5.1 da integração AppSignal for Elixir.

Relatório de erros

Por padrão, a instrumentação do Oban criará um trace de erro sempre que um dos seus workers falhar ao processar um job, seja retornando uma tupla {:error, _} ou lançando uma exceção. Se você quiser enviar erros para o AppSignal apenas quando a falha causar o descarte do job, ou seja, quando ele atingir o número máximo de tentativas, defina a opção de configuração report_oban_errors como "discard". Defina-a como "none" para nunca enviar erros de jobs do Oban para o AppSignal.
A opção de configuração report_oban_errors foi adicionada na versão 2.5.1 da integração AppSignal for Elixir.Se estiver usando uma versão do Oban anterior à 2.4.0, a informação sobre o estado do job não está disponível, e a opção "discard" se comportará como "all".

Traces de desempenho e erro

O AppSignal criará traces de desempenho a partir dos jobs executados pelos seus workers do Oban: Trace de desempenho de uma execução de job do Oban Ele também notificará erros que causam falhas nos seus workers ao processar um job: Trace de erro de uma execução de job do Oban Dentro dos traces de desempenho e de erro, as tags conterão informações sobre o job:
  • ID do job, queue, worker e priority
  • Número de tentativas anteriores
  • Estado e resultado do job após a execução
Quaisquer tags ou valores de metadados adicionados ao job também estarão presentes como tags no trace, permitindo que você filtre os traces por uma tag específica. Você também poderá ver quando um job do Oban é inserido na timeline de eventos dos traces de desempenho da sua aplicação: Timeline de eventos mostrando uma inserção de job do Oban
🔎 Alguns recursos só estão disponíveis em certas versões do Oban:
  • 2.2.0+: Tags
  • 2.3.0+: Valores de metadata e priority do job
  • 2.4.0+: Estado do job após a execução
  • 2.5.0+: Resultado do job após a execução
  • 2.11.0+: Evento de inserção de job
Para usar todos os recursos descritos acima, atualize para a versão mais recente do Oban.

Métricas

Além dos traces de desempenho e erro, o AppSignal for Elixir coletará métricas sobre o desempenho dos seus jobs do Oban:
  • oban_job_duration: a duração dos jobs processados, tagueada pelo worker do job, e por worker combinado com o estado ou hostname.
  • oban_job_queue_time: o tempo gasto pelos jobs aguardando na queue, tagueado por queue.
  • oban_job_count: a quantidade de jobs processados, tagueada pelo worker do job, queue e estado.
Usando essas métricas, o AppSignal cria o Intelligence dashboard do Oban, que tem os seguintes gráficos:
  • Duração dos jobs: a duração média dos jobs, por worker.
  • Tempo de espera dos jobs: o percentil 95 do tempo entre o agendamento e o início dos jobs, por queue.
  • Jobs concluídos: o número de jobs bem-sucedidos, por worker e queue.
  • Exceptions dos jobs: o número de jobs com falha, por worker.
Intelligence dashboard mostrando métricas-chave do Oban