Performance-Monitoring
Event-Timeline
Que-Jobs erscheinen in der Event-Timeline der Performance-Actions Ihrer Anwendung alsperform_job.que-events.
Incident-Gruppierung
AppSignal erkennt Job-Namen anhand des Klassennamens des Que-worker, ergänzt um den Methodennamenrun, was zu etwas wie MyWorker#run führt. AppSignal gruppiert Jobs für Performance-Monitoring und Benachrichtigungen anhand dieses Namens.
Enqueue-Instrumentation
Das Einreihen eines Que-Jobs zeichnet einenqueue.que-event auf, benannt nach dem eingereihten Job. Bulk-Enqueues in Version 2 von Que zeichnen stattdessen ein einzelnes bulk_enqueue.que-event auf.
AppSignal zeichnet enqueue-events in der event-timeline der aktiven transaction auf, zum Beispiel wenn Sie einen Job aus einem Web-Request oder aus einem anderen Job heraus einreihen. Sie werden nur aufgezeichnet, wenn eine transaction aktiv ist, sodass das Einreihen eines Jobs außerhalb einer transaction nichts aufzeichnet.
Um das Aufzeichnen von enqueue-events für alle background-job-integrations zu stoppen, setzen Sie die Konfigurationsoption enable_job_enqueue_instrumentation auf false. Dies beeinflusst die instrumentation der Jobs selbst nicht.
Unterstützung für Active Job
Die Que-Integration ist mit Active Job kompatibel. Führen Sie ein Upgrade auf Version 2.11.0 des Ruby-gem oder neuer durch, um die Unterstützung zu verbessern.Beispielanwendung
Wir haben eine Beispielanwendung in unserem Examples-Repository auf GitHub.- AppSignal + Rails 5 + Que Das Beispiel zeigt, wie eine Rails-5-App mit Que und AppSignal-Monitoring eingerichtet wird.
Span-Attribute
Nur im Collector-Modus: Dies gilt, wenn AppSignal für Ruby im Collector-Modus läuft. Andernfalls hat es keine Auswirkung.
messaging.system— die Queueing-Bibliothek.messaging.destination.name— die Queue, in die der Job eingereiht wurde.messaging.operation.type— ob der Span das Enqueue oder die Ausführung des Jobs ist.
error.type, die Klasse des Fehlers.
Verteiltes Tracing
Nur im Collector-Modus: Dies gilt, wenn AppSignal für Ruby im Collector-Modus läuft. Andernfalls hat es keine Auswirkung.
Que.bulk_enqueue eingereiht werden, sind die Ausnahme. Sie erscheinen nicht unter dem Trace, der sie eingereiht hat. Jeder Job erhält einen eigenen Trace, der auf das Bulk-Enqueue zurückverweist, da ein einzelnes Enqueue nicht der Parent eines ganzen Batches sein kann.
Der Trace wird in den Tags des Jobs übertragen. Que hat Tags ab Version 1.0, sodass auf Que 0.x nichts übertragen wird.
Que erlaubt höchstens fünf Tags pro Job. Ein Job ohne verbleibenden Platz für den Trace wird ohne Trace eingereiht.
Lesen Sie mehr über verteiltes Tracing.