Surveillance Sidekiq pour les applications Ruby on Rails
La gem AppSignal Ruby insère automatiquement un listener dans la pile de middlewares du serveur Sidekiq si le moduleSidekiq est présent et si vous utilisez Rails. Aucune autre action n’est requise.
L’intégration Sidekiq est compatible avec Active Job.
Surveillance Sidekiq pour les applications Ruby
L’ajout de cette configuration ne devrait être nécessaire que lorsque Sidekiq ne charge pas automatiquement AppSignal via le framework de l’application, comme Rails. Ajoutez ce snippet à votre configuration Sidekiq avec le bon environnement et le bon nom :Surveillance des performances
Une fois qu’AppSignal commence à signaler les métriques Sidekiq, AppSignal vous donnera des informations sur les performances via :- Chronologie des événements
- Suivi des erreurs
- Regroupement d’incidents
- Décomposition des échantillons
Chronologie des événements
Les événementsperform_job.sidekiq seront affichés dans la chronologie des événements sur la page de détail de l’incident de performance :

Suivi des erreurs
Suivez les exceptions qui se produisent lors de l’exécution des jobs Sidekiq. Lorsque Sidekiq rencontre un problème avant ou après le traitement d’un job, comme l’analyse de JSON depuis Redis, il lèvera une erreur. Cette erreur est signalée sous l’action SidekiqInternal dans le namespace background, car le contexte du job est inconnu au moment où l’erreur se produit.
Signaler les erreurs lors de l’abandon du job
Définissez l’option de configurationsidekiq_report_errors sur discard pour ne signaler les erreurs que lorsqu’un job est abandonné. Lorsqu’un job est abandonné, toutes les nouvelles tentatives ont été épuisées et le job n’est plus réessayé. Lisez la documentation Sidekiq pour en savoir plus sur la gestion des exceptions Sidekiq et les nouvelles tentatives de jobs échoués.
Regroupement d’incidents
Les noms de jobs sont automatiquement détectés en fonction du nom de classe du worker Sidekiq et suffixés par le nom de la méthodeperform, ce qui donne quelque chose comme : MyWorker#perform.

Performances de l’échantillon
Les décompositions d’échantillons vous permettent d’examiner rapidement les performances de Sidekiq et de repérer les problèmes de performances sans avoir à plonger dans les détails.
Magic dashboard
Lorsqu’AppSignal reçoit des métriques Sidekiq, il créera un magic dashboard Sidekiq, disponible dans la section dashboard de l’application AppSignal. Le magic dashboard Sidekiq contiendra les graphiques suivants :| Graphique | Métriques | 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 |
| Nom | Description |
|---|---|
action | Le nom de l’action depuis laquelle la métrique a été signalée (par exemple, YourWorker#perform). |
hostname | Le nom de l’hôte depuis lequel la métrique a été signalée. |
namespace | Le nom du namespace depuis lequel la métrique a été signalée. |
queue | File d’attente nommée dans laquelle les jobs sont traités, par exemple default ou mailer. |
status | Statut de chaque job, soit processed, soit failed. Les jobs failed sont également comptés comme processed. |

Graphique Connection count
Le graphique Connection count montre le nombre de connexions Sidekiq par hôte. Vous pouvez utiliser le graphique Connection count pour surveiller les connexions Sidekiq par hôte, repérer les tendances et goulots d’étranglement de connexion, et optimiser les ressources.Graphique Duration per worker
Le graphique Duration per worker montre le temps qu’il a fallu aux jobs pour s’exécuter, regroupés par namespace et action. Vous pouvez utiliser le graphique Duration per worker pour surveiller les performances des workers par action et namespace, vous donnant une vue d’ensemble des performances de Sidekiq et vous permettant d’identifier et d’enquêter rapidement sur les pics de durée.Graphique Job status per queue
Le graphique job status per queue avec une priorité montre le nombre de jobs qui ont été exécutés, regroupés par leur statut résultant, par la file d’attente dans laquelle ils ont été mis en file. Vous pouvez utiliser le graphique Job status per queue pour surveiller les nombres d’erreurs et les performances des jobs en fonction de la file d’attente, identifier les goulots d’étranglement et optimiser vos jobs en arrière-plan pour la mise à l’échelle.Graphique Overall job status
Le graphique overall job status montre le nombre de jobs Sidekiq attendus par statut et namespace. Vous pouvez utiliser le graphique Overall job status pour surveiller les jobs échoués et suivre la distribution des jobs entre les namespaces.Graphique Queue latency
Le graphique Queue latency montre la latence subie par la file d’attente au moment de la mesure. Sidekiq calcule cela en soustrayant l’heure à laquelle le dernier job a été mis en file d’attente de l’heure de la mesure. Cette valeur est rapportée en millisecondes. Vous pouvez utiliser le graphique Queue latency pour repérer les retards dans le traitement des jobs, détecter la congestion des files d’attente et comprendre la rapidité avec laquelle les jobs en arrière-plan démarrent.Graphique Queue length
Le graphique Queue length montre la longueur des files d’attente Sidekiq par file et namespace. Vous pouvez utiliser le graphique Queue length pour surveiller les performances des files d’attente et repérer et résoudre les goulots d’étranglement Sidekiq.Graphique Redis memory usage
Le graphique Redis memory usage affiche :- L’utilisation de la mémoire Virtual Memory Size de Redis (
sidekiq_memory_usage_rss) - L’utilisation de la mémoire Resident Set Size de Redis (
sidekiq_memory_usage_rss)
Graphique Throughput per worker
Le graphique Throughput per worker montre le nombre de jobs qui ont été exécutés, regroupés par hostname. Vous pouvez utiliser ce graphique pour surveiller les performances des workers, regroupées par la classe qui définit le job.Graphique Worker/processes count
Le graphique Worker/processes count montre le nombre de workers Sidekiq et de processus exécutés. Vous pouvez utiliser le graphique Worker/processes count pour gérer la distribution de la charge de travail, optimiser l’allocation des ressources et identifier les problèmes de performances.Configuration du nom d’hôte
AppSignal tente de détecter le nom d’hôte de l’instance Redis utilisée par votre instance Sidekiq pour stocker ses files d’attente. Si la détection n’est pas précise, il est possible de personnaliser la configuration du nom d’hôte en remplaçant la sonde Sidekiq par défaut. Tout d’abord, vous devrez remplacer la sonde Sidekiq par défaut en enregistrant une nouvelle sonde avec le même nom (:sidekiq). Cette sonde aura besoin d’un hash de configuration, comprenant la clé :hostname, avec la nouvelle valeur du nom d’hôte. En spécifiant l’option de configuration :hostname dans la sonde minute par minute Sidekiq, les métriques seront marquées avec la valeur de nom d’hôte donnée. La valeur de l’option de configuration :hostname n’est pas utilisée pour établir une connexion Redis ou Sidekiq.
Par exemple :
SidekiqProbe a été déplacée vers son propre module. Lors de l’appel à la constante, un avertissement sera imprimé et journalisé. Mettez à jour vers le nouveau nom de constante Appsignal::Probes::SidekiqProbe pour supprimer l’avertissement.