MoSKito3 Min. Lesezeit

Was ist hier los?

Now Running, neu in MoSKito 2.10.x, zeigt, welche Requests gerade durch die einzelnen Entrypoints Ihrer Anwendung laufen und welche vergangenen Requests zu lange gedauert haben.

Manchmal frieren Anwendungen einfach ein, und Sie wissen, dass etwas vor sich geht, aber nicht was. Irgendetwas scheint einfach festzuhängen. Passiert etwas Ähnliches in einer Datenbank, haben Sie Ihr Slow Query Log (sofern Sie das Glück hatten, es aktiviert zu haben), für eine gewöhnliche Webanwendung gibt es so etwas jedoch nicht. Sie könnten versuchen, mit jstack zu analysieren, was passiert, aber das ist ein mühsames Unterfangen. Genau hier springt Now Running ein.

Now Running ist eines der Hauptfeatures der Release-Linie 2.10.x. Das Prinzip: Sobald ein Aufruf zum ersten Mal einen Producer durchläuft, wird dieser Producer zu einem Entrypoint in die Anwendung. Mit anderen Worten: Jeder Producer, auf den eine Codeausführung als Erstes trifft, ist ein Entrypoint. Ein typischer Entrypoint kann ein Filter sein, etwas Geplantes, das von einem Executor Service aufgerufen wird, oder ein REST-API-Endpoint. Es kann aber auch eine Komponente tiefer in Ihrer Anwendung sein, wenn Sie am Einstiegspunkt keine überwachte Instanz haben.

Jeder Entrypoint wird ohnehin überwacht, da er ein Producer ist. Neben dem üblichen intervallbasierten Monitoring zählt MoSKito jedoch alle aktuellen und vergangenen Ausführungen durch diesen Endpoint. Das liefert Ihnen zwei entscheidende Informationen:

  • Was läuft gerade durch diesen Entrypoint?
  • Was lief in der Vergangenheit durch diesen Entrypoint und hat lange gedauert (im Grunde Ihr gutes altes Slow Query Log)?

Sehen wir uns das anhand einiger Beispiele an, freundlicherweise zur Verfügung gestellt von www.thecasuallounge.ch.

Da Now Running ein neues Feature ist, befindet es sich unter dem Navigationsreiter Everything Else, bis wir entscheiden, ob es ein eigener Hauptnavigationspunkt werden soll:

Now Running in der Navigation

Der Bereich selbst besteht aus mehreren Blöcken. Der oberste Block ist immer vorhanden und enthält alle erkannten Entrypoints:

Entrypoints

Die geweißten Stellen wurden wegen sensibler Informationen entfernt.

Wie wir sehen, sind jedem Entrypoint zwei Zahlen zugeordnet: Current requests und Total requests. Was diese bedeuten, sollte ziemlich selbsterklärend sein. Im obigen Screenshot sehen wir, dass gerade 4 Requests vom InternalRedirectFilter bedient werden. Das ist ein ganz normaler WebFilter in der Anwendung, der zufällig für viele Nutzer der erste Kontaktpunkt ist (wie wir an der Gesamtzahl der Requests sehen). Für jeden Entrypoint in der Liste zeigt MoSKito außerdem die aktuell laufenden und die vergangenen Requests an.

Aktuelle Requests in einem Entrypoint

Wie wir auf dem obigen Bild sehen, werden gerade 4 Requests verarbeitet, einer davon sind wir selbst, während wir uns diesen Bildschirm ansehen (mit Age 0 ganz unten). Für jeden Request sehen wir, wie lange (in Millisekunden) er bereits läuft und wann er gestartet wurde. Der eine, der schon über 6 Sekunden läuft, ist definitiv einen genaueren Blick wert.

Neben dem, was gerade passiert, können wir aber auch sehen, was passiert ist:

Vergangene Requests in einem Entrypoint

Hier haben wir also unser Slow Query Log. Ein Request, der über 9 Minuten gedauert hat? Definitiv etwas, das man sich genauer ansehen sollte!

Das war die kurze Beschreibung des neuen Now Running-Features in MoSKito 2.10.x. MoSKito steht wie immer auf der Download-Seite zum Download bereit. Wenn Sie MoSKito noch nicht kennen, werfen Sie unbedingt auch einen Blick in den Integration Guide und die Schritt-für-Schritt-Integration.

Haben Sie ein System, das Sie ausbremst, oder eine Idee, die bisher niemand günstig genug bauen konnte?

Lassen Sie uns reden. 30 Minuten, ohne Pitch-Deck.

Worum geht es?