title: Domain-driven monitoring of business-critical application systems
Creators: name: Wagner, Lion
Publisher: name: Universität Stuttgart
Year: 2023
Subjects: subject: 004

description: Context. Many software companies use application performance management (APM) to track the technical healthiness of their systems. Modern frameworks, that are used to instrument such systems, like OpenTelemetry or AppDynamics, allow for an easy observation of many technical metrics, such as response times, throughout or boot times. Problem. However, underneath each systems lies usually a complex business process with its own non-technical characteristics, so called domain metrics. These characteristics are often not directly observable by technical metrics, which makes them hard to measure and understand, resulting in a conceptual gap between developers and domain experts. Objective. This thesis presents the domain-driven instrumentation (DDI) approach, which eases the process of instrumenting a software system to measure domain metrics, by automatically injecting instrumentation points into a running system, based on a provided domain-architecture-mapping (DAM). Additionally, the approach is tested and demonstrate on a realistic mock system, to keep the results representative. Method. Based on these objectives, first the mock system, which is strongly based on real world industry system was developed. Then, based on the work of Hofer and Schwentner [HS21b] and Vernon [Ver13] a meta-model, that can be used to model a DAM, based on the concepts of domain-driven design (DDD) and domain storytelling (DST), was developed. This model was then implemented in to the dqualizer tool chain, and executed on the mock system, to show its feasibility. Result. The demonstration revealed, that this approach can be effectively used to instrument a modern software system for monitoring domain metrics, by successfully instrumenting the mock with tracing and metric monitoring probes. However, it also revealed some major open problems, when it comes to instrumenting asynchronous behavior on a domain level, resulting in the collection, but non-usability of some metrics. Conclusion. In conclusion, the work of the thesis was able to successfully implement and demonstrate an automated domain-driven instrumentation approach and demonstrate it on a system that is closely related to a real world setting.
description: Kontext. Viele Softwareunternehmen verwenden APM, um den technischen Zustand ihrer Systeme zu überwachen. Moderne Frameworks, die zur Instrumentierung solcher Systeme verwendet werden, wie zum Beispiel OpenTelemetry oder AppDynamics, ermöglichen eine einfache Beobachtung vieler technischer Metriken, wie Antwortzeiten, Durchsätze, oder Startzeiten. Problemstellung. Hinter jedem System verbirgt sich jedoch in der Regel ein komplexer Geschäftsprozess mit nichttechnischen Merkmalen, den so genannten Domänenmetriken. Diese Merkmale sind oft nicht direkt durch technische Metriken beobachtbar, was ihre Messung und Verständlichkeit erschwert und zu einer konzeptionellen Lücke zwischen Entwicklern und Domänenexperten führt. Zielsetzung. Diese Arbeit stellt den Ansatz der domänengetriebenen Instrumentierung (DDI) vor, welcher den Prozess der Instrumentierung eines Softwaresystems zur Messung von Domänenmetriken vereinfacht, indem er automatisch Instrumentierungspunkte in ein laufendes System injiziert kann, basierend auf einem bereitgestellten Domänen-Architektur-Mapping (DAM). Zusätzlich wird diese Herangehensweise an einem realistischen Mock-System getestet und demonstriert, um die Ergebnisse repräsentativ zu halten. Methodik. Auf der Grundlage dieser Ziele wurde zunächst ein Beispielsystem entwickelt, das sich stark an einem realen Industriesystemen orientiert. Dann wurde, basierend auf der Arbeit von Hofer und Schwenter [HS21b] und Vernon [Ver13], ein Metamodell entwickelt, das zur Modellierung eines DAMs, basierend auf den Konzepten von domain-driven design (DDD) und domain story telling (DST), verwendet werden kann. Dieses Metamodell wurde dann in die dqualizer-Werkzeugkette implementiert und auf dem Beispielsystem ausgeführt, um seine Anwendbarkeit zu zeigen. Ergebnis. Die demonstrative Anwendung des Ansatzes zeigte, dass er effektiv genutzt werden kann, um ein modernes Softwaresystem für die Überwachung von Domänenmetriken zu instrumentieren. Das Beispielsystem wird erfolgreich mit Tracing- und Metriküberwachungssonden instrumentiert. Es zeigte sich jedoch auch, dass es bei der Instrumentierung von asynchronem Verhalten auf Domänenebene es noch einige größere Probleme gibt, die dazu führen, dass einige Metriken zwar gesammelt, aber nicht verarbeitet werden können. Zusammenfassung. Zusammenfassend lässt sich sagen, dass es im Rahmen dieser Arbeit gelungen ist, einen größtenteils automatisierten domänengetriebenen Instrumentierungsansatz erfolgreich zu implementieren und an einem Beispielsystem damit zu instrumentatieren, welches einen engen Bezug zu einer realen Umgebung aufweist.