Vous pouvez activer la journalisation Sidekiq pour collecter des mesures sur le temps passé dans chaque tâche via ENV[\"DISCOURSE_LOG_SIDEKIQ\"].
Une façon de l'activer sans reconstruire le conteneur est d'éditer `/src/config/environments/production.rb` et d'ajouter ce code quelque part au début :
ENV["DISCOURSE_LOG_SIDEKIQ"] = "1"
Ensuite, redémarrez le conteneur.
Le système de tâches écrira les mesures dans log/sidekiq.log sous forme de lignes JSON, qui peuvent être facilement résumées via jq.
Pour obtenir le temps total et moyen passé dans les tâches prenant plus de 5 % du temps 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