Nutzer-Storys

Verbesserung der User Intelligence mit dem ELK Stack bei SCA

logo-sca-care-of-life.pngUm eine Suchlösung zu verbessern, müssen Sie erst einmal verstehen, wie Ihre Benutzer damit interagieren. Das lässt sich zum Beispiel bewerkstelligen, indem Ihre Suchlösung Statistiken zur Benutzeraktivität aufzeichnet. Je mehr desto besser.

Martin Johansson ist Senior Consultant bei Findwise AB, Schweden. Seine Interessen liegen im gesamten Spektrum der System-Backends, von der Interaktion von Modulen und Klassen bis zur Kompilierung von Code. Jeder Aspekt ist gleich wichtig, wenn es um die Schaffung einer ganzheitlichen und effektiven Lösung geht. Als er vor einem Jahr zum ersten Mal Kontakt mit ELK hatte, wusste er einfach, dass er es als technischer Leiter unbedingt beim SCA-Projekt brauchen würde. Heute finden die am SCA-Projekt Beteiligten mit der Plattform regelmäßig neue Nutzungsbereiche. Deshalb ist er praktisch zum ELK-Botschafter geworden und zeigt die Lösung jede Woche zahlreichen Kunden.

SCA ist ein führendes globales Unternehmen für Hygiene- und Forstprodukte, das etwa 44.000 Menschen weltweit beschäftigt. Die Gruppe (alle Unternehmen von SCA) entwickelt und produziert nachhaltige Produkte für Körperpflege, Taschentücher und Forsterzeugnisse. Der Vertrieb erfolgt in über 100 Ländern unter vielen starken Marken. Jede Marke hat ihre eigene Website und ihre eigene Suche.

Bei SCA nutzen wir Elasticsearch, Logstash und Kibana, um Suchvorgänge, Klicks auf Ergebnisdokumente und Feedback von Benutzern sowohl im Intranet als auch auf externen Sites aufzuzeichnen. Außerdem erfassen wir qualitative Kennzahlen, indem wir unsere öffentlichen Nutzer nach Anzeige der Suchergebnisse fragen: „Haben Sie gefunden, wonach Sie gesucht haben?“ Der Benutzer kann einen Daumen nach oben oder nach unten geben und einen Kommentar hinterlassen.

Was wird erfasst?

Alle Suchparameter und Ergebnisinformationen werden für jedes Suchereignis aufgezeichnet: der Abfrage-String, die Paginierung, Sortierung, Facetten, die Trefferanzahl, die Suchreaktionszeit, Datum und Zeit der Suche etc. Durch Klick auf ein Ergebnisdokument werden außerdem zahlreiche Informationen erfasst: die Position des Dokuments in der Ergebnisliste, die Dauer von der Suche bis zum Klick und verschiedene Dokument-Metadaten (z. B. URL, Quelle, Format, letzte Bearbeitung, Verfasser und mehr). Ein Klickereignis wird außerdem mit dem Suchereignis verknüpft, das dieses erzeugt hat. Das ist auch bei Feedback-Ereignissen der Fall.

Jedes Ereignis wird in einem Logfile gespeichert, das von Logstash überwacht wird. Logstash erzeugt dann von jedem Ereignis ein Dokument und sendet es an Elasticsearch. Mittels Kibana werden die in Elasticsearch indexierte Daten visualisiert.

Warum?

Aufgrund des Umfangs der erfassten Informationen können wir einfache Fragen wie „Welche zehn Abfragen traten in der vergangenen Woche am häufigsten auf?“ und „Wonach suchen Benutzer, die auf Dokument X klicken?“, bis zu komplexen Fragen wie „Wie steht es um die Verteilung der letzten Bearbeitungsdaten geklickter Dokumente aus Quelle S am Mittwoch?“ beantworten. Die Möglichkeiten sind nahezu endlos!

Die Antworten auf diese Fragen ermöglichen uns, die Suche so zu optimieren, dass sie die Bedürfnisse der Benutzer noch besser erfüllt und dadurch die Wertschöpfung gesteigert wird. Heute nutzen wir diese Analyse für alles wie z. B. die Anpassung des Relevanzmodells, Änderung des Layouts für die Such- und Ergebnisseiten, das Hinzufügen neuer Facetten oder der Entfernung alter.

Erlebter Wert – mehr als „nur“ Protokolle

Es ist üblich, Such- und Klickereignisse aufzuzeichnen, aber bei SCA haben wir das erweitert, um - wie oben erklärt - auch Benutzer-Feedback zu berücksichtigen. Dadurch wird der Wert der Statistiken noch weiter gesteigert. So kann ein Administrator negativem Feedback detailliert nachgehen, z. B. durch Wiederholung des Szenarios. Außerdem werden so implizit evaluierte Probezeiträume für Änderungsanfragen ermöglicht. Wenn ein statistisch signifikanter Anstieg am Anteil des positiven Feedbacks verzeichnet wird, hat diese Änderung den Benutzern die Suche erleichtert. Wir können auch Antworten auf neue Fragen finden – z. B. „Welches Feedback geben Benutzer, die keine Treffer hatten?“ und „Finden Benutzer öfter, was sie suchen, wenn sie Facetten benutzen?“.

Und auch Server-Überwachung!

Dieses Setup wird nicht nur zur Erfassung von Informationen über das Nutzerverhalten genutzt, wir überwachen auch den Zustand unserer Server. In diesem Zusammenhang wird ELK als "Time Series Database" verwendet. Alle paar Sekunden indexieren wir Informationen über die CPU-, Speicher- und Festplattenauslastung jedes Servers (time series data). Die offensichtlichste Vorteil daraus ist der historische Aspekt. Wir können nicht nur den Ressourcenverbrauch zu einem bestimmten Zeitpunkt sehen, wir können auch Trends ausmachen, die allein mit aktuellen Daten nicht zu erkennen wären. Daraus lassen sich natürlich Korrelationen zu Benutzerstatistiken ableiten, so hängt z. B. ein Anstieg der CPU-Auslastung mit einem Anstieg des Abfragevolumens zusammen.

Vorteile des ELK Stack

Die Bedeutung für SCA liegt darin, dass ihre Suche sich immer weiter verbessert. Wir, die Entwickler und Administratoren des Suchsystems, tappen nicht mehr im Dunkeln, was die Änderungen angeht, die wirklich etwas bewirken. Die direkte Feedback-Schleife zwischen den Benutzern und Administratoren des Systems schafft ein Gemeinschaftsgefühl, besonders wenn die Benutzer sehen, dass man sich um ihre Belange kümmert. Benutzer finden immer mehr, was sie suchen, sparen so Zeit und vermeiden Frust.

Schlussfolgerung

Wir verlassen uns sehr auf Elasticsearch, Logstash und Kibana als Kern unserer Suchfunktion und zur kontinuierlichen Verbesserung der Einblicke. Wir sind schon gespannt, was die 2.0-Versionen bringen werden. Die Herausforderung besteht darin zu wissen, welche Informationen man braucht, und ein Modell zu erarbeiten, das diese Anforderungen erfüllt. Sobald die Logs erst einmal aus unseren Systemen strömten, war die Inbetriebnahme der ELK-Plattform bei SCA der am wenigsten zeitaufwändige Teil des Projekts.