Data Analysis and Error Analytics in Large-Scale Heterogeneous Software Systems

Andreas Schörgenhumer


Abstract

Today’s software systems continuously collect monitoring data during operation, which can be used for assessment of system states, error analytics and overall data analysis. Due to the increasingly large amounts of data, manual analyses are infeasible and automated tools must be developed. While many approaches have been proposed in both research and industry that work in the context of a single system, the area of analyzing data from a multi-system environment has not yet been strongly focused, despite all its potential benefits such as combining multi-system data to create powerful models or identifying errors and patterns across multiple systems. In this thesis, we thus present our work on analyzing multi-system monitoring data, which consists of three separate approaches that each tackle specific tasks.

The first part comprises a crash analysis of the processes of the different multi-system topologies. Based on the processes’ software technologies, we investigate the crash behavior with the goal to identify error-prone technologies and failures across multiple systems. In the evaluation, where we use over one year’s worth of monitoring data of over 500 software systems from our industry partner, we show the feasibility and usefulness of our approach.

The second part of this thesis covers a multi-system event prediction with the main objective of predicting performance-related service slowdown events based on infrastructure monitoring time series. Using our sophisticated preprocessing framework, we extract different datasets and train various machine learning models, including several multi-system models that utilize data from different systems. We evaluate our approach on monitoring data covering 20 days of 57 software systems from our industry partner, which reveals a subpar prediction performance. In a detailed discussion and an additional evaluation of synthetic data, we identify possible reasons and limitations of our approach.

In the third part, we present a feature-based time series clustering approach. We create a set of clustering methods and automatically compare them using labeled data, where we can then choose one of the top-performing methods for clustering unlabeled data to extract common patterns across different software systems. We also propose a run-time cost model to assess the computational costs in addition to the clustering quality. The evaluation comprises the UCR time series archive as well as two infrastructure monitoring datasets from our industry partner, covering thousands of time series of hundreds of systems. The results reveal interesting insights and demonstrate the usefulness of our approach.

Kurzfassung

Moderne Softwaresysteme sammeln während des Betriebs kontinuierlich Monitoring-Daten, die zur Beurteilung von Systemzuständen, zur Fehleranalytik und zur Gesamtdatenanalyse genutzt werden können. Aufgrund der immer größer werdenden Datenmengen sind manuelle Analysen nicht mehr durchführbar, weshalb automatisierte Werkzeuge entwickelt werden müssen. Während sowohl in der Forschung als auch in der Industrie viele Ansätze vorgeschlagen wurden, die im Kontext eines Einzelsystems funktionieren, wurde bisher noch kein ausreichender Fokus auf eine Multisystemumgebung gesetzt, trotz aller potenziellen Vorteile wie der Kombination von Multisystemdaten zur Erstellung leistungsfähiger Modelle oder der Identifizierung von Fehlern und Mustern über mehrere Systeme hinweg. In dieser Arbeit stellen wir daher unsere Arbeit zur Analyse von Multisystem-Monitoring-Daten vor, die aus drei separaten Ansätzen besteht, welche jeweils spezifische Aufgabenstellungen behandeln.

Der erste Teil umfasst eine Crash-Analyse von Prozessen der verschiedenen Multisystemtopologien. Basierend auf den Softwaretechnologien dieser Prozesse untersuchen wir das Absturzverhalten mit dem Ziel, fehleranfällige Technologien und Ausfälle über mehrere Systeme hinweg zu identifizieren. Die Auswertung von mehr als einem Jahr an Monitoring-Daten von über 500 Softwaresystemen unseres Industriepartners zeigt die Praxistauglichkeit und Nützlichkeit unseres Ansatzes.

Der zweite Teil dieser Arbeit befasst sich mit der Vorhersage von leistungsbezogenen Service-Slowdown-Ereignissen auf Basis von Infrastruktur-Monitoring-Zeitreihen. Mit Hilfe unseres leistungsfähigen Preprocessing-Frameworks extrahieren wir verschiedene Datensätze und trainieren diverse Machine-Learning-Modelle, darunter mehrere Multisystemmodelle, die Daten von unterschiedlichen Systemen nutzen. Wir evaluieren unseren Ansatz anhand von Monitoring-Daten, die 20 Tage von 57 Softwaresystemen unseres Industriepartners umfassen, wobei wir eine unterdurchschnittliche Vorhersageleistung feststellen müssen. Im Rahmen einer ausführlichen Diskussion und einer zusätzlichen Auswertung von synthetischen Daten identifizieren wir mögliche Gründe sowie Grenzen unseres Ansatzes.

Im dritten Teil stellen wir einen merkmalsbasierten Zeitreihen-Clustering-Ansatz vor. Wir erstellen Clustering-Methoden und vergleichen diese automatisch mit Hilfe gelabelter Daten, aus denen wir eine der besten Methoden für das Clustering von nicht gelabelten Daten wählen können, um gemeinsame Muster über verschiedene Softwaresysteme hinweg zu extrahieren. Zusätzlich präsentieren wir ein Laufzeitkostenmodell, um neben der Clustering-Qualität auch die Rechenkosten zu bewerten. Die Evaluierung umfasst das UCR-Zeitreihenarchiv sowie zwei Infrastruktur-Monitoring-Datensätze unseres Industriepartners, die tausende Zeitreihen von hunderten Systemen beinhalten. Die Ergebnisse zeigen interessante Einblicke und demonstrieren die Nützlichkeit unseres Ansatzes.


PhD thesis, Johannes Kepler University Linz, July 2021

Download as PDF