Sidekiq-monitoring voor Ruby on Rails-apps
De AppSignal Ruby-gem voegt automatisch een listener in de middleware-stack van de Sidekiq-server in als deSidekiq-module aanwezig is wanneer u Rails gebruikt. Er zijn geen verdere acties nodig.
De Sidekiq-integratie is compatibel met Active Job.
Sidekiq-monitoring voor Ruby-apps
Het toevoegen van deze configuratie is alleen nodig wanneer Sidekiq AppSignal niet automatisch laadt via het framework van de app, zoals Rails. Voeg dit snippet toe aan uw Sidekiq-configuratie met de juiste omgeving en naam:Performance-monitoring
Zodra AppSignal begint met het rapporteren van Sidekiq-metrieken, geeft AppSignal u prestatie-inzichten via:Event-tijdlijn
perform_job.sidekiq-events worden weergegeven in de event-tijdlijn op de performance-incidentdetailpagina:

Foutopsporing
Volg excepties die optreden bij het uitvoeren van Sidekiq-jobs. Wanneer Sidekiq een probleem tegenkomt vóór of nadat een job is verwerkt, zoals het parsen van JSON uit Redis, zal het een fout opwerpen. Deze fout wordt gerapporteerd onder de actie SidekiqInternal in de background-namespace, omdat de jobcontext onbekend is op het moment dat de fout optreedt.
Fouten rapporteren bij job-discard
Stel de configuratieoptiesidekiq_report_errors in op discard om alleen fouten te rapporteren wanneer een job wordt verworpen. Wanneer een job wordt verworpen, zijn alle pogingen van de job uitgeput en wordt de job niet langer opnieuw geprobeerd. Lees de Sidekiq-documentatie voor meer informatie over Sidekiq-exceptieafhandeling en mislukte job-pogingen.
Incident-groepering
Jobnamen worden automatisch gedetecteerd op basis van de naam van de Sidekiq-workerklasse en voorzien van de methodenaamperform, wat resulteert in iets als: MyWorker#perform.

Sample-prestaties
Met sample-overzichten kunt u de prestaties van Sidekiq snel beoordelen en prestatieproblemen opsporen zonder diep in de details te hoeven duiken.
Magic dashboard
Wanneer AppSignal Sidekiq-metrieken ontvangt, wordt er een Sidekiq magic dashboard aangemaakt, beschikbaar in de dashboardsectie van de AppSignal-app. Het Sidekiq magic dashboard bevat de volgende grafieken:| Grafiek | Metrieken | 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 |
| Naam | Beschrijving |
|---|---|
action | De naam van de actie waarvan de metriek is gerapporteerd (bijv. YourWorker#perform). |
hostname | De naam van de host waarvan de metriek is gerapporteerd. |
namespace | De naam van de namespace waarvan de metriek is gerapporteerd. |
queue | Benoemde wachtrij waarin jobs worden verwerkt, bijv. default of mailer. |
status | Status van elke job, ofwel processed of failed. Jobs die failed zijn, worden ook als processed meegeteld. |

Connection count-grafiek
De Connection count-grafiek toont het aantal Sidekiq-verbindingen per host. U kunt de Connection count-grafiek gebruiken om Sidekiq-verbindingen per host te monitoren, verbindingstrends en bottlenecks op te sporen en bronnen te optimaliseren.Duration per worker-grafiek
De Duration per worker-grafiek toont hoe lang het duurde voordat jobs werden uitgevoerd, gegroepeerd op namespace en actie. U kunt de Duration per worker-grafiek gebruiken om de prestaties van workers per actie en namespace te monitoren, waardoor u een helikopterview van Sidekiq-prestaties krijgt en snel pieken in de duur kunt identificeren en onderzoeken.Job status per queue-grafiek
De grafiek job-status per queue met een prioriteit toont het aantal jobs dat is uitgevoerd, gegroepeerd op hun resulterende status, per wachtrij waarin ze in de wachtrij zijn geplaatst. U kunt de Job status per queue-grafiek gebruiken om job-foutaantallen en -prestaties op basis van wachtrij te monitoren, bottlenecks te identificeren en uw background jobs te optimaliseren voor schaalbaarheid.Overall job status-grafiek
De grafiek overall job status toont het aantal verwachte Sidekiq-jobs per status en namespace. U kunt de Overall job status-grafiek gebruiken om mislukte jobs te monitoren en de verdeling van jobs over namespaces te volgen.Queue latency-grafiek
De Queue latency-grafiek toont de latency die de wachtrij ondervond op het meetmoment. Sidekiq berekent dit door het tijdstip waarop de laatste job in de wachtrij werd geplaatst af te trekken van het meetmoment. Deze waarde wordt gerapporteerd in milliseconden. U kunt de Queue latency-grafiek gebruiken om vertragingen bij het verwerken van jobs op te sporen, congestie in de wachtrij te detecteren en te begrijpen hoe snel background jobs starten.Queue length-grafiek
De Queue length-grafiek toont de lengte van Sidekiq-wachtrijen per wachtrij en namespace. U kunt de Queue length-grafiek gebruiken om de prestaties van de wachtrij te monitoren en Sidekiq-bottlenecks op te sporen en op te lossen.Redis memory usage-grafiek
De Redis memory usage-grafiek toont:- Het Virtual Memory Size-geheugengebruik van Redis (
sidekiq_memory_usage_rss) - Het Resident Set Size-geheugengebruik van Redis (
sidekiq_memory_usage_rss)
Throughput per worker-grafiek
De Throughput per worker-grafiek toont het aantal jobs dat is uitgevoerd, gegroepeerd op hostname. U kunt deze grafiek gebruiken om de prestaties van workers te monitoren, gegroepeerd op de klasse die de job definieert.Worker/processes count-grafiek
De Worker/processes count-grafiek toont het aantal Sidekiq-workers en uitgevoerde processen. U kunt de Worker/processes count-grafiek gebruiken om de werkverdeling te beheren, de toewijzing van bronnen te optimaliseren en prestatieproblemen te identificeren.Hostname-configuratie
AppSignal probeert de hostname van het Redis-exemplaar dat uw Sidekiq-exemplaar gebruikt om zijn wachtrijen op te slaan, te detecteren. Als de detectie niet nauwkeurig is, is het mogelijk om de hostname-configuratie aan te passen door de standaard Sidekiq-probe te overschrijven. Eerst moet u de standaard Sidekiq-probe overschrijven door een nieuwe probe met dezelfde naam (:sidekiq) te registreren. Deze probe heeft een configuratie-hash nodig, inclusief de :hostname-sleutel, met de nieuwe hostname-waarde. Door de :hostname-configuratieoptie te specificeren in de Sidekiq minutely-probe, worden de metrieken getagd met de opgegeven hostname-waarde. De waarde van de :hostname-configuratieoptie wordt niet gebruikt om een Redis- of Sidekiq-verbinding tot stand te brengen.
Bijvoorbeeld:
SidekiqProbe verplaatst naar zijn eigen module. Bij het aanroepen van de constante wordt een waarschuwing afgedrukt en gelogd. Werk bij naar de nieuwe constantenaam Appsignal::Probes::SidekiqProbe om de waarschuwing te verwijderen.