Siegl, S. (2022). Causal discovery for metric-based root cause analysis in application performance monitoring [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2022.97982
Die Hauptursache eines Softwarefehlers zu identifzieren ist aufgrund der Komplexität heutiger Softwaresysteme oft ein äußerst schwieriges und zeitaufwendiges Unterfangen und daher versuchen Root Cause Analysis (RCA) Systeme diese Ursachensuche zu optimieren, indem sie Orientierungshilfe leisten.Ein wesentlicher Bestandteil dieser Orientierungshilfe ist dabei eine Graphenstruktur, die kausale Abhängigkeiten zwischen und innerhalb verschiedener Komponenten einer Softwareanwendung abbildet.Diese Beziehungen müssen oftmals automatisch anhand von Daten – besonders häufig Leistungs- und Ressourcennutzungsmetriken – gelernt werden.Zu diesem Zweck verwenden viele bestehende RCA-Systeme statistische Algorithmen, die häufig unter dem Begriff Causal Discovery zusammengefasst sind.Obwohl diese Algorithmen bereits in verschiedenen anderen Disziplinen verwendet wurden, gibt es bisher nur vereinzelt Untersuchungen, wie nützlich und anwendbar diese Algorithmen für die Aufgabe der Ursachenanalyse im Bereich Application Performance Monitoring (APM) sind und wie gut sie im Vergleich zu einfacheren Techniken funktionieren.Deshalb vergleicht und bewertet diese Arbeit mehrere unterschiedliche Causal Discovery Algorithmen im Hinblick auf die gerade genannte Aufgabe, indem Metrik-Zeitreihendaten von einer tatsächlichen Softwareanwendung gesammelt und als Eingabedaten für die zu bewertenden Algorithmen verwendet werden.Die durchgeführte Auswertung zeigt, dass sich die untersuchten Causal Discovery Algorithmen hinsichtlich ihrer Fähigkeiten durchaus beachtlich unterscheiden können, die meisten von ihnen jedoch klar bessere Ergebnisse liefern als einfachere Techniken wie die Verwendung der Pearson-Korrelation.Diese Ergebnisse deuten darauf hin, dass viele bestehende RCA-Systeme, deren Funktionsweise eine Graphenstruktur voraussetzt, durch die Verwendung eines hier ausgewerteten Causal Discovery Algorithmus verbessert werden könnten.
de
Identifying the root cause of a software failure in today's complex software environments is often an extremely difficult and time consuming undertaking and therefore automatic root cause analysis (RCA) systems try to optimize this root cause search by providing guidance.In many cases, a vital part for providing this guidance is a graph like structure which encodes causal dependencies between and within different components of a software application and these relationships often need to be learned automatically from data, most commonly from performance and resource utilization metrics.To do so, many existing RCA systems utilize statistical algorithms that fall under the category of causal discovery, which already have been used in various other disciplines. Nonetheless, so far, little work has been done to understand how useful and applicable different causal discovery methods are for the task of root cause analysis within the domain of application performance monitoring (APM) and how they do perform compared to simpler techniques. Therefore, this work compares and evaluates multiple different causal discovery algorithms with regard to the just stated task by collecting metric time series data from an actual software application and using it as input for the to be evaluated algorithms. This comparison revealed that the evaluated causal discovery methods can differ quite substantially with regard to their capabilities, but overall most of them still outperform simpler techniques like the Pearson correlation. These results suggest that many existing RCA systems that rely on a graph-like structure for their root cause search could greatly benefit from using one of the evaluated causal discovery algorithms.