Monitorio

Message-Queue-Monitoring für Shopware 6

Wächst die Shopware-Message-Queue oder wird sie gar nicht mehr abgearbeitet, bleiben E-Mails, Indexierung und Datenabgleiche liegen – häufig, weil die Worker nicht laufen. Monitorio überwacht den Rückstau und meldet, wenn er zu lange über deinem Limit liegt oder sich gar nicht mehr bewegt.

  • 2 Alarme
  • Messwerte jede Minute
  • Plugin emz/monitorio nötig
  • Eigene Limits je Tageszeit

So überwacht Monitorio deine Message Queue

Im Normalbetrieb arbeitet der Worker schneller ab, als neue Nachrichten entstehen – der Backlog pendelt um null. Bleiben dagegen zehntausende Einträge über längere Zeit liegen, ist praktisch immer etwas kaputt, meistens ein Worker, der nicht mehr läuft. Monitorio liest den Backlog über einen eigenen Endpunkt unseres Plugins emz/monitorio und beantwortet zwei Fragen: Ist es zu viel? Und bewegt es sich überhaupt?

Summe oder einzelne Queue

Ein leeres Queue-Feld heißt beim Message-Queue-Alarm: alle Queues summiert. Beim Stagnations-Alarm heißt es: alle Queues, jede einzeln betrachtet. Auf Wunsch grenzt du beide Alarme auf eine einzelne Queue ein.

Erst die Dauer löst aus

Der Message-Queue-Alarm schlägt erst an, wenn der Backlog über das gesamte Beobachtungsfenster über dem Limit liegt. Eine einzelne Messung auf oder unter dem Limit unterbricht die Kette und verhindert den Alarm.

Zeitfenster mit eigenem Limit

Am Alarm pflegst du optionale Zeitfenster: Start, Ende und das Limit, das in dieser Zeit gilt – etwa ein höheres für nächtliche Importe. Fenster über Mitternacht sind erlaubt.

Stillstand unabhängig von der Höhe

Eine Queue gilt als stagnierend, wenn ihr Backlog in jeder Messung des Fensters mindestens beim Mindestwert bleibt und zwischen keinen zwei aufeinanderfolgenden Messungen sinkt. Sinkt er auch nur einmal, gilt sie als aktiv abgearbeitet.

Kein Urteil ohne Daten

Mit weniger als zwei Messungen im Fenster trifft der Stagnations-Alarm bewusst kein Urteil – weder Alarm noch Erholung.

Verlauf jede Minute

Monitorio sammelt im Standard jede Minute Messwerte. Verlauf und Einstellungen findest du im Projekt unter „Statistiken → Message Queue“.

2 Alarme für Rückstau und Stillstand

Der Message-Queue-Alarm fragt „ist es viel?“, die Stagnation „bewegt es sich überhaupt?“. Beide ergänzen sich und laufen sinnvoll parallel. Da Queues unterschiedlich schnell wachsen dürfen, ist eine eigene Instanz je wichtiger Queue mit eigenem Limit der Normalfall.

Message-Queue-Alarm

Meldet, wenn der Backlog für die eingestellte Dauer durchgehend über dem Limit liegt – über alle Queues summiert oder für eine einzelne Queue, auf Wunsch mit eigenen Limits für bestimmte Tageszeiten.

Voreinstellung: mehr als 1.000 Nachrichten, 5 Minuten lang

Message-Queue-Stagnation

Meldet eine Queue, die gar nicht mehr abgearbeitet wird: Ihr Backlog sinkt über die eingestellte Dauer nie, unabhängig davon, wie hoch er absolut ist. So fällt auch ein kleiner, aber unbewegter Rückstau auf.

Voreinstellung: mindestens 1 Nachricht, 60 Minuten ohne Rückgang

Praxisbeispiele: So stellst du die Message-Queue-Alarme ein

Planmäßige Spitzen sind normal

Ein Reindex erzeugt in einem großen Shop schlagartig sehr viele Nachrichten, genauso ein nächtlicher Import. Ein zu scharf gestellter Alarm meldet dann planmäßige Arbeit als Störung – und wird nach der dritten Nacht ignoriert.

Erst mitlesen, dann einstellen

Lies eine bis zwei Wochen im Verlauf mit und ordne die Spitzen zu: Wann läuft ein Reindex, wann ein Import, wie hoch steigt der Backlog dabei und wie lange dauert der Abbau?

Limit über die normale Spitze

Lege das Limit deutlich über die normale Spitze und wähle die Dauer so, dass ein regulärer Reindex vollständig durchläuft, bevor der Alarm feuert.

Startwerte ohne Erfahrung

Ohne Erfahrungswerte startest du zum Beispiel mit einem Limit im Bereich von 20.000 Nachrichten und 30 Minuten Dauer und justierst nach der ersten Woche. Bei kleinen Shops darf beides deutlich kleiner sein – dort ist schon ein vierstelliger Backlog ungewöhnlich.

Nachts gelten andere Regeln

Laufen die großen Importe nachts, gib dem Alarm ein Zeitfenster mit eigenem Limit. So bleibt er tagsüber scharf und nachts großzügig – statt falschem Alarm um drei Uhr oder einem Limit, das tagsüber nichts mehr meldet.

Stagnation als Frühwarner

Liegt deine Queue normalerweise bei null, ist der Stagnations-Alarm der bessere Frühwarner: Ein stehender Worker fällt damit auf, lange bevor sich zehntausend Nachrichten angesammelt haben.

Sonder-Queues mit eigener Instanz

Parkt ein Batch-Job dauerhaft Nachrichten in einer Queue, gib ihr eine eigene Alarm-Instanz mit passender Schwelle. Ausschließen lässt sich eine Queue nicht: Die allgemeine Instanz braucht deshalb eine Schwelle über dem Dauerbestand der Sonder-Queue – beim Stagnations-Alarm gilt das für das Mindest-Backlog.

Voraussetzung: das Plugin emz/monitorio

Monitorio liest den Backlog über einen eigenen Endpunkt unseres Plugins emz/monitorio in deinem Shop. Fehlt es oder ist es deaktiviert, kommen keine Daten, und die Alarme bleiben still. Die Überwachung steht für Shopware-6-Projekte zur Verfügung.

emz/monitorio auf Packagist

Häufige Fragen

Brauche ich für das Message-Queue-Monitoring ein Plugin?

Ja. Monitorio liest den Backlog über einen eigenen Endpunkt unseres Plugins emz/monitorio. Fehlt es oder ist es deaktiviert, kommen keine Daten, und die Alarme bleiben still.

Was ist der Unterschied zwischen Message-Queue-Alarm und Message-Queue-Stagnation?

Der Message-Queue-Alarm fragt „ist es viel?“: Er meldet, wenn der Backlog für die eingestellte Dauer durchgehend über dem Limit liegt. Die Stagnation fragt „bewegt es sich überhaupt?“: Sie meldet eine Queue, deren Backlog über das ganze Fenster nie sinkt – auch wenn nur ein paar hundert Nachrichten drinstehen. Beide ergänzen sich und laufen sinnvoll parallel.

Woran erkenne ich, dass die Worker meiner Message Queue nicht laufen?

Im Normalbetrieb arbeitet der Worker schneller ab, als neue Nachrichten entstehen, und der Backlog pendelt um null. Bleiben Nachrichten über längere Zeit liegen, steckt meistens ein Worker dahinter, der nicht mehr läuft. Liegt deine Queue normalerweise bei null, meldet die Message-Queue-Stagnation das, lange bevor sich zehntausend Nachrichten angesammelt haben.

Löst ein Reindex oder ein nächtlicher Import Fehlalarme aus?

Nicht, wenn Limit und Dauer zu deinem Shop passen. Der Message-Queue-Alarm schlägt erst an, wenn der Backlog durchgehend über dem Limit liegt – eine einzelne Messung darunter unterbricht die Kette. Für nächtliche Importe gibst du dem Alarm ein Zeitfenster mit eigenem Limit.

Welches Limit ist für meinen Shop richtig?

Voreingestellt meldet der Alarm, wenn der Backlog 5 Minuten lang über 1.000 Nachrichten liegt. Deinen eigenen Wert findest du im Verlauf: eine bis zwei Wochen mitlesen, die Spitzen von Reindex und Importen zuordnen und das Limit deutlich darüber legen. Ohne Erfahrungswerte startest du zum Beispiel im Bereich von 20.000 Nachrichten und 30 Minuten.

Kann ich einzelne Queues getrennt überwachen?

Ja. Eine eigene Alarm-Instanz je wichtiger Queue mit eigenem Limit ist der Normalfall. Ausschließen lässt sich eine Queue aber nicht: Eine Instanz ohne Queue-Filter betrachtet weiterhin alle Queues, auch eine Sonder-Queue mit dauerhaftem Bestand.

Weitere Features

Schluss mit Shop-Down-Calls um 3 Uhr morgens.

Nach 5 Minuten kommen die ersten Messwerte – und du schläfst wieder durch, während Monitorio die Shops im Auge behält.