Unterstützte Adapter
Die Active-Job-Integration unterstützt alle Active-Job-Adapter. Sie kann auch Adapter unterstützen, die nicht auf dieser Seite aufgeführt sind und über ein separates Gem erreichbar sind. Bitte beachten Sie jedoch, dass diese Adapter nicht getestet wurden. Adapter ohne eigene AppSignal-Integration werden über die Active-Job-Instrumentation überwacht, wie zum Beispiel GoodJob.Integration mit von AppSignal unterstützten Bibliotheken
Die folgenden von AppSignal unterstützten Hintergrundjob-Bibliotheken sind automatisch in Active Job integriert, sodass AppSignal Ihnen tiefere Performance-Einblicke geben kann:Fehler bei Job-Verwerfen melden
Setzen Sie dieactivejob_report_errors-Konfigurationsoption auf discard, um Fehler nur dann zu melden, wenn ein Job verworfen wird. Wenn ein Job verworfen wird, sind alle Job-Wiederholungen aufgebraucht, und der Job wird nicht mehr wiederholt. Lesen Sie die Active-Job-Dokumentation, um mehr über Active-Job-Exception-Handling und fehlgeschlagene Job-Wiederholungen zu erfahren.
Enqueue-Instrumentation
Das Einreihen eines Jobs über Active Job zeichnet einenqueue.active_job-event auf, benannt nach dem eingereihten Job. Wenn ein Job über einen Adapter eingereiht wird, den AppSignal ebenfalls instrumentiert, wie Sidekiq oder Resque, unterdrückt AppSignal das eigene enqueue-event des Adapters und zeichnet das Einreihen einmal als Active-Job-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.
Metadaten
AppSignal sammelt die folgenden Metadaten für Active-Job-Jobs:
*Ab Rails-Version 6 werden Queue-Zeiten für den Namespace gemeldet, aus dem sie gemeldet werden, und können in den Performance-Graphen von AppSignal angezeigt werden.
AppSignal verwendet Active-Job-Metadaten, um Ihnen tiefere kontextbezogene Einblicke in die Job-Performance zu geben. Beim Inspizieren von Active-Job-Traces in AppSignal:
- Der Job-Name gruppiert die Traces des Jobs auf der Performance-Seite:

- Metadaten (außer Job-Name und Events) sind als filterbare Tags auf der Trace-Seite verfügbar:

- Die Spans des Jobs erscheinen in der Trace-Timeline auf der Trace-Seite:

Intelligence dashboard
Wenn AppSignal Active-Job-Metriken empfängt, erstellt es ein Active Job Intelligence dashboard, das im Dashboard-Bereich der AppSignal-App verfügbar ist. Wenn eine neuere Version des Dashboards verfügbar ist, bietet ein Banner oben an, es zu aktualisieren.
Das Active Job Intelligence dashboard in AppSignal
Die Dauer- und Durchsatz-Graphen verwenden
trace_duration bei Accounts, die zu Trace-Metriken migriert wurden. Bei Accounts, die das noch nicht sind, werden diese Graphen stattdessen mit transaction_duration dargestellt.
Jedes Tag wird durch eine farbige Linie im Graph dargestellt.
Graph “Dauer pro Job-Klasse”
Der Graph “Dauer pro Job-Klasse” zeigt die Zeit, die zur Ausführung von Jobs benötigt wurde, gruppiert nach der Klasse, die den Job definiert. Mit diesem Graph können Sie die Performance von Jobs pro Klasse überwachen und erhalten so eine Übersicht über die Job-Performance, mit der Sie Spitzen in der Ausführungszeit schnell identifizieren und untersuchen können.Graph “Job-Status pro Queue”
Der Graph “Job-Status pro Queue mit Priorität” zeigt die Anzahl der ausgeführten Jobs, gruppiert nach ihrem resultierenden Status und nach der Queue, in der sie eingereiht wurden. Mit diesem Graph können Sie Fehleranzahlen und Performance von Jobs basierend auf der Queue überwachen, Bottlenecks identifizieren und Ihre Hintergrundjobs auf Skalierbarkeit optimieren.Graph “Job-Status pro Queue mit Priorität”
Der Graph “Job-Status pro Queue mit Priorität” zeigt die Anzahl der ausgeführten Jobs, gruppiert nach ihrem resultierenden Status, nach der Queue, in der sie eingereiht wurden, und nach der ihnen zugewiesenen Priorität. Mit diesem Graph können Sie Fehleranzahlen und Performance von Jobs basierend auf Queue und Priorität überwachen, Bottlenecks identifizieren und Ihre Hintergrundjobs auf Skalierbarkeit optimieren.Graph “Queue-Zeit pro Queue”
Der Graph “Queue-Zeit pro Queue” zeigt, wie lange Jobs in jeder Queue gewartet haben, bevor sie gestartet wurden. Er zeigt den Mittelwert, das 90. Perzentil und das 95. Perzentil. Mit diesem Graph können Sie Queues erkennen, die ins Hintertreffen geraten, und entscheiden, ob eine Queue mehr Worker benötigt.Graph “Durchsatz pro Job-Klasse”
Der Graph “Durchsatz pro Job-Klasse” zeigt die Anzahl der ausgeführten Jobs, gruppiert nach der Klasse, die den Job definiert. Mit diesem Graph können Sie überwachen, wie viele Jobs ausgeführt werden, gruppiert nach der Klasse, die den Job definiert.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.
Siehe auch
- Solid Queue: Hintergrundjobs in Ihrer Datenbank ausführen: Nutzen Sie die Datenbank, die Sie bereits betreiben, als Active-Job-Backend. Rails 8 richtet dies in neuen Anwendungen bereits ein; dieser Leitfaden beschreibt das Hinzufügen zu einer bestehenden Anwendung.
- Sidekiq-Batches: Jobs parallel ausführen und danach reagieren: Teilen Sie eine Arbeitseinheit in viele Jobs auf und führen Sie einen Callback aus, sobald jeder Job erfolgreich war.