论文标题
MISERTRACE:内核级请求跟踪微服务可见性
MiSeRTrace: Kernel-level Request Tracing for Microservice Visibility
论文作者
论文摘要
随着微服务应用的演变,与其整体相比,潜在的架构变得越来越复杂。这主要带来了可观察性的挑战。通过对分布式应用程序的功能有更深入的了解,可观察性可以通过在实施中获得瓶颈的视图来改善系统的性能。当前现有工具在分布式应用程序上执行动态跟踪的可观察性仅限于用户空间,并且需要仪器进行仪器以跟踪请求流。在本文中,我们提出了一个新的开源框架Misertrace,可以追踪在内核空间中输入微服务应用程序的端到端路径,而无需仪器或修改应用程序。内核空间的全面性的可观察性允许分解各种活动(例如网络传输和IO任务)的各个步骤,从而实现基于根本原因的性能分析并准确地识别热点。 MISERTRACE支持追踪由BPFTRACE或FTRACE等框架提供的用户启用的内核事件,并隔离与每个应用程序请求相关的内核活动,并与最小的开销相关联。然后,我们在基准微服务应用程序上证明了解决方案的工作。
With the evolution of microservice applications, the underlying architectures have become increasingly complex compared to their monolith counterparts. This mainly brings in the challenge of observability. By providing a deeper understanding into the functioning of distributed applications, observability enables improving the performance of the system by obtaining a view of the bottlenecks in the implementation. The observability provided by currently existing tools that perform dynamic tracing on distributed applications is limited to the user-space and requires the application to be instrumented to track request flows. In this paper, we present a new open-source framework MiSeRTrace that can trace the end-to-end path of requests entering a microservice application at the kernel space without requiring instrumentation or modification of the application. Observability at the comprehensiveness of the kernel space allows breaking down of various steps in activities such as network transfers and IO tasks, thus enabling root cause based performance analysis and accurate identification of hotspots. MiSeRTrace supports tracing user-enabled kernel events provided by frameworks such as bpftrace or ftrace and isolates kernel activity associated with each application request with minimal overheads. We then demonstrate the working of the solution with results on a benchmark microservice application.