Puedes habilitar el registro de Sidekiq para recopilar mediciones sobre el tiempo dedicado a cada trabajo a través de ENV[\"DISCOURSE_LOG_SIDEKIQ\"].
Una forma de habilitarlo sin reconstruir el contenedor es editar `/src/config/environments/production.rb` y agregar este código en algún lugar al principio:
ENV["DISCOURSE_LOG_SIDEkiq"] = "1"
Luego, reinicia el contenedor.
La maquinaria de trabajos escribirá mediciones en log/sidekiq.log como líneas de JSON, que se pueden resumir fácilmente a través de jq.
Para obtener el tiempo total y promedio dedicado a trabajos que consumen más del 5% del tiempo total:
sudo apt update && apt install jq -y
jq -s '
group_by(.job_name)
| map({
job_name: .[0].job_name,
count: length,
total_duration: (map(.duration) | add),
average_duration: (map(.duration) | add / length)
})
| (map(.total_duration) | add) as $grand_total
| map(. + { percentage: (.total_duration / $grand_total * 100) })
| map(select(.percentage > 5))
| sort_by(.total_duration)' log/sidekiq.log