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.
翻译:随着微服务应用的演变,基础结构与其单一软件相比变得越来越复杂,这主要带来了可观察性的挑战。通过对分布式应用的运作提供更深入的了解,可观察性通过了解执行中的瓶颈,使系统的运作得到改善。目前现有工具对分布式应用进行动态追踪的可观察性仅限于用户空间,需要应用跟踪请求流量的工具。在本文件中,我们提出了一个新的开放源码框架Miseltrace,它可以追踪进入内核空间微服务应用的请求的端到端路径,而无需对应用程序进行仪器化或修改。由于内核空间的全面性,可以在网络传输和IO任务等活动中打破各种步骤,从而能够根据业绩分析和准确识别热点进行根本原因分析。Misertrace支持跟踪由诸如软盘或软盘等框架提供的用户驱动的内核事件。我们随后以最低的顶部为基准,展示了与每项应用请求相关的微服务活动的运行结果。