Monitoramento Sidekiq para apps Ruby on Rails
A gem AppSignal Ruby insere automaticamente um listener na pilha de middleware do servidor Sidekiq se o móduloSidekiq estiver presente, caso você use Rails. Nenhuma ação adicional é necessária.
A integração com o Sidekiq é compatível com Active Job.
Monitoramento Sidekiq para apps Ruby
Adicionar esta config só deve ser necessário quando o Sidekiq não carrega o AppSignal automaticamente pelo framework do app, como o Rails. Adicione este snippet à sua config do Sidekiq com o ambiente e o nome corretos:Performance monitoring
Uma vez que o AppSignal comece a reportar métricas do Sidekiq, ele fornecerá insights de performance via:Event timeline
Eventosperform_job.sidekiq serão mostrados na event timeline na página de detalhes do performance incident:

Error tracking
Rastreie exceptions que ocorrem ao executar jobs do Sidekiq. Quando o Sidekiq encontra um problema antes ou depois de um job ter sido processado, como ao fazer parse de JSON do Redis, ele gerará um erro. Esse erro é reportado sob a action SidekiqInternal no namespace background, pois o contexto do job é desconhecido quando o erro ocorre.
Reportar erros ao descartar job
Defina a opção de configuraçãosidekiq_report_errors como discard para reportar erros apenas quando um job é descartado. Quando um job é descartado, todas as tentativas de retry do job foram esgotadas, e o job não é mais executado novamente. Leia a documentação do Sidekiq para saber mais sobre o tratamento de exceptions do Sidekiq e retries de jobs com falha.
Incident grouping
Os nomes dos jobs são detectados automaticamente com base no nome da classe do worker Sidekiq e sufixados com o nome do métodoperform, resultando em algo como: MyWorker#perform.

Sample performance
Os sample breakdowns permitem que você revise rapidamente a performance do Sidekiq e identifique problemas de performance sem precisar se aprofundar nos detalhes.
Enqueue instrumentation
Enfileirar um job do Sidekiq registra um eventenqueue.sidekiq, com o título baseado no job sendo enfileirado.
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.
Intelligence dashboard
Quando o AppSignal recebe métricas do Sidekiq, ele criará um Intelligence dashboard do Sidekiq, disponível na seção de dashboard do app AppSignal. O Intelligence dashboard do Sidekiq terá os seguintes gráficos:
As tags fornecem um detalhamento contextual das informações de performance do Sidekiq. O AppSignal reporta as seguintes tags para jobs do Sidekiq:
Cada tag será representada com uma linha colorida no gráfico:

Gráfico Connection count
O gráfico Connection count mostra a contagem de conexões do Sidekiq por host. Você pode usar o gráfico Connection count para monitorar conexões do Sidekiq por host, identificar tendências e gargalos de conexão e otimizar recursos.Gráfico Duration per worker
O gráfico Duration per worker mostra a quantidade de tempo que os jobs levaram para executar, agrupados por namespace e action. Você pode usar o gráfico Duration per worker para monitorar a performance dos workers por action e namespace, dando a você uma visão geral da performance do Sidekiq 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 com uma prioridade mostra o número de jobs que foram executados, agrupados por seu status resultante, pela fila na qual foram enfileirados. Você pode usar o gráfico Job status per queue para monitorar contagens de erros e performance dos jobs com base na fila, identificar gargalos e otimizar seus background jobs para escalabilidade.Gráfico Overall job status
O gráfico overall job status mostra o número de jobs Sidekiq esperados por status e namespace. Você pode usar o gráfico Overall job status para monitorar jobs com falha e rastrear a distribuição de jobs entre namespaces.Gráfico Queue latency
O gráfico Queue latency mostra a latência que a fila experimentou no momento da medição. O Sidekiq calcula isso subtraindo o horário em que o último job foi enfileirado do horário da medição. Este valor é reportado em milissegundos. Você pode usar o gráfico Queue latency para identificar atrasos no processamento de jobs, detectar congestionamento da fila e entender com que rapidez os background jobs iniciam.Gráfico Queue length
O gráfico Queue length mostra o comprimento das filas do Sidekiq por fila e namespace. Você pode usar o gráfico Queue length para monitorar a performance da fila e identificar e resolver gargalos do Sidekiq.Gráfico Redis memory usage
O gráfico Redis memory usage mostra:- O uso de memória Virtual Memory Size do Redis (
sidekiq_memory_usage_rss) - O uso de memória Resident Set Size do Redis (
sidekiq_memory_usage_rss)
Gráfico Throughput per worker
O gráfico Throughput per worker mostra o número de jobs que foram executados, agrupados por hostname. Você pode usar este gráfico para monitorar a performance do worker, agrupada pela classe que define o job.Gráfico Worker/processes count
O gráfico Worker/processes count mostra o número de workers e processos executados do Sidekiq. Você pode usar o gráfico Worker/processes count para gerenciar a distribuição de carga de trabalho, otimizar a alocação de recursos e identificar problemas de performance.Configuração de hostname
O AppSignal tenta detectar o hostname da instância Redis que sua instância Sidekiq usa para armazenar suas filas. Se a detecção não for precisa, é possível personalizar a configuração do hostname sobrescrevendo o probe Sidekiq padrão. Primeiro, você precisará sobrescrever o probe Sidekiq padrão registrando um novo probe com o mesmo nome (:sidekiq). Este probe precisará de um hash de configuração, incluindo a chave :hostname, com o novo valor do hostname. Ao especificar a opção de configuração :hostname no minutely probe do Sidekiq, as métricas serão marcadas com o valor de hostname fornecido. O valor da opção de configuração :hostname não é usado para estabelecer uma conexão Redis ou Sidekiq.
Por exemplo:
SidekiqProbe foi movida para seu próprio módulo. Ao chamar a constante, um aviso será impresso e registrado. Atualize para o novo nome de constante Appsignal::Probes::SidekiqProbe para remover o aviso.