🤖 AI Summary
This work addresses the lack of architecture-centric, systematic observability analysis tools for Python software. We present the first migration and reconstruction of the Java-based Kieker observability framework into a Python-native implementation, establishing a synergistic analysis pipeline that integrates static analysis (Abstract Syntax Tree parsing, module dependency extraction) with dynamic instrumentation (runtime call-chain capture, method-level monitoring). Our approach enables fine-grained cross-module invocation tracing, automated construction of program dependency graphs, and architecture visualization and reconstruction. Experimental evaluation across multiple real-world Python projects demonstrates high-fidelity recovery of both structural organization and dynamic execution behavior, significantly enhancing observability and architectural comprehensibility for complex Python applications. The complete toolchain is open-sourced.
📝 Abstract
The Kieker observability framework is a tool that provides users with the means to design a custom observability pipeline for their application. Originally tailored for Java, supporting Python with Kieker is worthwhile. Python's popularity has exploded over the years, thus making structural insights of Python applications highly valuable. Our Python analysis pipeline combines static and dynamic analysis in order to build a complete picture of a given system.