NICSDG: A Non-Intrusive Approach to Constructing Concise Service Dependency Graphs for Microservice Systems

Weijie Hong,Yong Yang,Junqi Wu,Dongdong Shangguan,Yuanhao Lai,Qiang Bai,Ying Li
DOI: https://doi.org/10.1109/issrew63542.2024.00051
2024-01-01
Abstract:Microservice architecture has been widely adopted to build large-scale systems thanks to its flexibility and scalability. Intricate dependencies lurk behind the numerous microservices and are quite dynamic due to the rapid development and deployment of microservice systems. Constructing the Service Dependency Graphs (SDGs) is crucial for service governance to ensure the reliability of a microservice system. Abundant attempts have been made to utilize system logs to construct SDGs because system logs are pervasive and non-intrusive to the systems. However, existing methods fail to construct concise SDGs in three aspects: comprehensiveness, directionality, and redundancy. To address these challenges, we propose NICSDG, which constructs concise SDGs from system logs without any expertise or modifications to the systems. NICSDG combines global analysis and local analysis which was neglected in previous research, to acquire all the potential service dependencies accurately. A dependency direction judging method based on the Dynamic Time Warping (DTW) algorithm is proposed in NICSDG to determine the direction of dependencies correctly. NICSDG also incorporates a mechanism to identify redundant and misleading indirect dependencies and only preserves the direct service dependencies to build concise SDGs. We conducted experiments on one industrial microservice system and one open-source microservice system. The results show that NICSDG achieves an F1-score of 0.909 for building concise SDGs in real-world systems.
What problem does this paper attempt to address?