Skip to main content
Active Job ist ein Framework zum Deklarieren von Jobs und deren Ausführung auf einer Vielzahl von Queuing-Backends, das mit Rails ausgeliefert wird. Die Active-Job-Integration verfolgt die Ausführung und Events des ausgeführten Jobs. Wenn AppSignal Active-Job-Metriken erkennt, erstellt es ein Intelligence dashboard, mit dem Sie die Kernmetriken visuell überwachen können.

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.

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 die activejob_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.
Einige Active-Job-Adapter (wie Sidekiq, Delayed::Job usw.) haben ihr eigenes Retry-System. Nachdem Active Job seine Wiederholungen aufgebraucht hat, können diese Bibliotheken ihr eigenes Job-Retry-System auslösen.Dies wird Jobs auch dann wiederholen, wenn Active Job die Active-Job-Wiederholungen aufgebraucht und den Job verworfen hat. Um zu vermeiden, dass Jobs nach Beendigung der Active-Job-Wiederholungen weiter wiederholt werden und Fehler für diese Wiederholungen gemeldet werden, stellen Sie sicher, dass das Retry-System des Adapters deaktiviert ist.Wenn Sie sich auf Sidekiqs Retry-System verlassen, konfigurieren Sie es auch so, dass es Fehler nur bei Verwerfen meldet, damit Fehler nicht mehrfach gemeldet werden.

Enqueue-Instrumentation

Das Einreihen eines Jobs über Active Job zeichnet ein enqueue.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-Samples in AppSignal:
  • Der Job-Name wird verwendet, um den Job für AppSignal-Incidents zu gruppieren:
Example performance issues overview
  • Metadaten (außer Job-Name und Events) sind als filterbare Tags auf Incident-Samples verfügbar:
Example Active Job tags
  • *.active_job-Events werden in der Event-Timeline für Performance-Samples angezeigt:
Example Event timeline

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. Das Active Job Intelligence dashboard enthält die folgenden Graphen: Tags geben Ihnen eine kontextbezogene Aufschlüsselung der Active-Job-Performance-Informationen, derzeit meldet AppSignal die folgenden Tags für Active-Job-Jobs: Jedes Tag wird durch eine farbige Linie im Graph dargestellt: Example Actie Job dashboard

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”

Nicht alle Active-Job-Adapter unterstützen Job-Prioritäten. Wenn Jobs keine Prioritätswerte haben, ist der Graph leer.
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 “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.