发明名称 Dynamic border line tracing for tracking message flows across distributed systems
摘要 The present invention enables capturing API level calls using a combination of dynamic instrumentation and library overriding. The invention allows event level tracing of API function calls and returns, and is able to generate an execution trace. The instrumentation is lightweight and relies on dynamic library/shared library linking mechanisms in most operating systems. Hence we need no source code modification or binary injection. The tool can be used to capture parameter values, and return values, which can be used to correlate traces across API function calls to generate transaction flow logic.
申请公布号 US9535814(B2) 申请公布日期 2017.01.03
申请号 US201514665519 申请日期 2015.03.23
申请人 NEC Corporation 发明人 Arora Nipun;Rhee Junghwan;Zhang Hui;Jiang Guofei
分类号 G06F9/44;G06F11/34 主分类号 G06F9/44
代理机构 代理人 Kolodka Joseph
主权项 1. A controller for a distributed system comprising: a processor and a memory; tracing application flows at an application program interface (API) level in a distributed system, the tracing, wherein the tracing includes capturing and generating message identifiers that can uniquely be linked to a transaction, a trampoline function from trampolines generating a message identification by hashing message contents being sent across to other services, the tracing enabling uniquely identifying a message using the message identification by the same content being routed to an end-service process with message based systems, comprising: generating an overriding library with placeholders for hot-patching and setting up the trampolines and hot-patch no-operations (NOPs), wherein the overriding library includes overriding functions that are wrapper functions with an exact same signature as a target function, the wrapper functions in turn calling original functions and in the process being able to capture arguments being passed to a real function and a return value, without modifying actual logic, a key aspect in overriding target functions includes a lazy linking of shared libraries of dynamically linked libraries;at any step in execution of an application, patching the application in with an instrumentation being triggered on;capturing, with an override instrumentation function, relevant call parameters and return values that are stored to a common log file along with all process names;finishing hot-patching and pushing all logs for analysis once an instrumentation period is finished; andanalyzing transaction logs from various API boundaries and reconstructing execution flow.
地址 JP