Alle Beiträge, jStage Platform, Technologien & Entwicklung

Analyse von Nutzeranfragen mit stagemonitor

Stagemonitor ist vor allem dafür bekannt, dass damit die Performance einer Anwendung analysiert werden kann. Es gibt jedoch noch ein weiteres Gebiet, wofür stagemonitor nützlich ist, welches nicht nur Entwickler interessieren dürfte. Es geht darum, ein tieferes Verständnis davon zu bekommen, wie die Anwendung von den Kunden genutzt wird, wo und warum Fehler auftreten, ob Missbrauch mit der Anwendung getrieben wird und vieles mehr.

Ein derzeit populäres Vorgehen ist die Analyse von HTTP Anfragen mit dem sogenannten “Elastic Stack” (ehemals ELK Stack). Hierbei werden beispielsweise mit Hilfe von “Logstash” Access Logs vom Apache Server geparsed, ggf. in Redis zwischengespeichert, in Elasticsearch indexiert und mit Kibana visualisiert.

Stagemonitor wird direkt in die Anwendung integriert und hat somit direkten Zugriff auf Informationen wie die angefragte URL, die Verarbeitungszeit, aufgetretene Exceptions usw.. Dadurch entfällt der aufwendige Schritt, diese Informationen aus Logdateien zu extrahieren. Die gesammelten Daten über eine HTTP-Anfrage, sogennante “Request Traces”, werden asynchron an Elasticsearch gesendet, sodass die Performance der Anwendung nicht beeinträchtigt wird. Zusätzlich bietet stagemonitor ein bereits vorkonfiguriertes Kibana Dashboard an, mit dem die Anfragen analysiert werden können. Dabei gehen die Analysemöglichkeiten weit über das hinaus, was man aus Apache Logs auslesen kann. Dies sind einige der Anwendungsfälle, die durch stagemonitor möglich sind:

Web Analytics

Die von stagemonitor gesammelten Daten lassen sich für leichtgewichtige Webanalysezwecke nutzen. Beispielsweise lässt sich anhand von Diagrammen ablesen, welche Geräte und Browser die Nutzer am häufigsten einsetzen, welche Seiten am häufigsten aufgerufen werden und welche Nutzer am aktivsten sind. Das interaktive Dashboard Kibana schränkt bei jedem Klick auf ein Diagramm die Ergebnismenge ein. Selektiert man beispielsweise den User-Agent-Typen “Mobile Browser”, werden alle anderen Diagramme nach diesem Kriterium eingeschränkt. So lässt sich unter Anderem herausfinden, welche Seiten auf den mobilen Geräten besonders beliebt sind. Schränkt man auf einen einzelnen Nutzer ein, kann man nachvollziehen welche Aktionen dieser durchgeführt hat. Zu jedem Zeitpunkt können auch die Details der einzelnen Request Traces wie HTTP Header, Query Parameter, Status Code usw. betrachtet werden. Darüber hinaus lassen sich Anfragen, die nicht von echten Nutzern (z. B. dem GoogleBot) abgesetzt wurden, herausfiltern.

Web Analytics DashboardStagemonitor bietet zudem die Möglichkeit, dem Request Trace eigene Informationen hinzuzufügen. Dies ist ein mächtiges Werkzeug, um einzelne Features der Applikation genauer analysieren zu können. Die Suche einer eCommerce Webseite ist die direkteste Möglichkeit Feedback der Nutzer darüber einzuholen, an welchen Produkten sie interessiert sind. Ein Dashboard, das detaillierte Auskunft darüber gibt, wie die Nutzer die Suche benutzen und wonach sie suchen, ist also von hohem Nutzen. Hierzu können Kontextinformationen über die Produktsuche, wie die Anzahl der Suchergebnisse an den Request Trace gehängt werden. Nun lässt sich einfach ein Dashboard bauen, welches die Fragen nach den Top Suchbegriffen, Suchanfragen ohne Ergebnissen usw. beantwortet.

Fehleranalysen

Bevor ein gemeldeter Fehler behoben werden kann, muss man zu zunächst verstehen, wodurch er entsteht und ausgelöst wird. Dies ist jedoch häufig ein Problem, da die Nutzer oft nicht mehr wissen, wie es zu dem Fehler gekommen ist und welche Daten sie eingegeben haben. Mit den von stagemonitor erhobenen Request Traces ist es ein Leichtes, die Anfrage herauszusuchen, welche den Fehler verursacht hat und diesen zu reproduzieren. Ebenfalls lässt sich herausfinden, welche Anfragen der entsprechende Nutzer zuvor abgesetzt hat um in den fehlerhaften Zustand zu kommen.

Dies führt bereits zu einer schnelleren Behebung von gemeldeten Fehlern, jedoch muss sich hierbei erst ein Kunde aktiv beim Dienstanbieter beschweren, damit der Fehler auffällt. Seien wir ehrlich: Die meisten Kunden gehen bei einer nicht funktionierenden Anwendung einfach zur Konkurrenz. Deshalb ist es wichtig, proaktiv zu überwachen, ob Fehler auftreten und diese schnellstmöglichst zu beheben. In dem von stagemonitor bereitgestellten “Request Analysis Dashboard” werden neben einer Filtermöglichkeit nach Status (OK, Error) und HTTP Status Codes auch häufig auftretende Exceptions aufgelistet.

Request Analysis DashboardAufspüren unerwünschter Anfragen

Wer seinen Service im Internet anbietet, muss damit rechnen, dass nicht alle Nutzer gute Absichten haben. Es ist bestimmt kein Zufall, dass das Akronym WWW auch als Wild Wild West gelesen werden kann. Hinter jeder Anfrage könnte sich eine “Denial-Of-Service (DOS) Attacke”, ein Postkutschenräuber oder ein bösartiger Crawler verstecken, der Informationen abgreifen will.

Im Request Analysis Dashboard fällt schnell auf, wenn ein Nutzer Anfragen mit einer Geschwindigkeit absetzt, die ein Mensch nicht schaffen würde. Zudem lassen sich Requests analysieren, die mithilfe einer Bibliothek (z. B. dem Apache HTTP Client) oder eines Skripts (z. B. cURL) abgesetzt wurden.

Im nächsten Teil dieser Serie widmen wir uns wieder der Performance. Hier werde ich vorstellen, wie man mit stagemonitor Leisungsprobleme in der Produktion erkennen und beheben kann.
Haben Sie Fragen zu stagemonitor oder planen stagemonitor einzusetzen? Bitte treten Sie gern mit mir in Kontakt oder hinterlassen Sie einen Kommentar. Weitere Informationen finden Sie zusätzlich auch unter www.stagemonitor.org.

Weitere Beiträge der Serie

Teil 1: Performance Monitoring mit stagemonitor
Teil 2: Performance Monitoring mit stagemonitor während der Entwicklung
Teil 3: Analyse von Nutzeranfragen mit stagemonitor