Currently, in the space of Application Performance Monitoring (APM), instrumentation agents for different languages capture stack-traces, as well as additional information indicating how functions are called, how these calls are related to each other, and how much time each function call takes, which can be represented using call-graphs. However, the underlying software (code) used to capture these call-graphs is often implemented in different programming language-specific agents (e.g., a Java-agent, a php-agent, a Python-agent, etc.), which results in code-logic-duplication and maintenance overhead. It would be beneficial to provide a capability for capturing call-graphs in a language agnostic manner. Techniques presented herein provide for the ability to implement an agent through the use of Extended Berkley Packet Filter (eBPF) technology such that the agent is not tied to any specific language and can capture call-graphs and other context-metadata from many different applications, which may improve observability across multiple languages.
Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.
Goel, Ashutosh and Kumar Tattari Prakasan, Prabish, "LANGUAGE AGNOSTIC CALL-GRAPH INSTRUMENTATION", Technical Disclosure Commons, (April 26, 2022)