2019 · 15 citations · 14 references
ComputingComputer ScienceComputer SystemsDistributed SystemsHeterogeneous ComputingOperating SystemsDistributed Systems PerformanceMicroservices ArchitectureSystem CallsSystem MonitoringCode InstrumentationExecution TracingOverhead ReductionPerformance MonitoringPerformance OverheadRequest Causality AnalysisSystem Performance MonitoringTracing
Tracing has been applied to study and understand the behavior and performance of distributed systems. Despite the attention this topic has received, two important aspects are still challenges and especially harmful in the context of microservice-based applications: source code instrumentation and performance overhead. Existing attempts resort on working around overhead (e.g., sampling techniques) and do not address microservices architecture's high technological heterogeneity. Our main contribution is a novel approach for tracing microservices which joins proxies' usage (for handling tracing concerns) and operating system syscalls monitoring (for diagnosing causality between multiple requests). It makes advances on the field by completely separating instrumentation and application code while minimizing performance overhead. We carry out a performance evaluation to show the impact of our solution on the execution of microservice-based applications. Our proposal fosters developers' productivity by allowing them to focus on business logic instead of instrumentation and copes with the intrinsic heterogeneity of microservices by relying on deployment modifications and operating systems mechanisms solely.
14
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · ACM SIGPLAN Notices · 2005 · 3.2K citations
Virtual Time and Global States of Distributed Systems
Friedemann Mattern · 2002 · 1.3K citations
Daniel A. Menascé · IEEE Internet Computing · 2002 · 831 citations
Monitoring distributed systems
Jeffrey J. Joyce, Greg Lomow, Konrad Slind et al. · ACM Transactions on Computer Systems · 1987 · 251 citations · Full text