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.
Magic dashboard
Quando o AppSignal recebe métricas do Sidekiq, ele criará um magic dashboard do Sidekiq, disponível na seção de dashboard do app AppSignal. O magic dashboard do Sidekiq terá os seguintes gráficos:| Gráfico | Métricas | Tags |
|---|---|---|
| Connection count | sidekiq_connection_count | hostname |
| Duration per worker | transaction_duration | actionnamespace |
| Job status per queue | sidekiq_queue_job_count | statusqueue |
| Overall job status | sidekiq_job_count | statushostname |
| Queue latency | sidekiq_queue_latency | hostnamequeue |
| Queue length | sidekiq_queue_length | hostnamequeue |
| Redis memory usage | sidekiq_memory_usagesidekiq_memory_usage_rss | hostname |
| Throughput per worker | transaction_duration | actionnamespace |
| Worker/processes count | sidekiq_worker_countsidekiq_process_count | hostname |
| Nome | Descrição |
|---|---|
action | O nome da action da qual a métrica foi reportada (por exemplo, YourWorker#perform). |
hostname | O nome do host do qual a métrica foi reportada. |
namespace | O nome do namespace do qual a métrica foi reportada. |
queue | Fila nomeada na qual os jobs são processados, por exemplo, default ou mailer. |
status | Status de cada job, processed ou failed. Jobs que são failed também são contados como processed. |

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.