Runtime API Event Monitoring Without Application Code Changes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional instrumentation techniques for application monitoring modify the original application code, affecting its execution behavior and requiring language-specific agents, which is inefficient and disruptive.
Innovation Solution
A hook-based agent monitors and analyzes application execution by detecting invocations of a runtime engine API without modifying the application code, supporting multiple languages and versions through agnostic functionality and event-based monitoring.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If instrumentation code is inserted into application code for monitoring, then monitoring capability is improved, but application code integrity and execution behavior deteriorate
Solution Approach 1:
The monitoring system is segmented into separate components: the application code remains untouched while monitoring functionality is divided into independent instrumentation code that operates separately. The agent processes instrumentation code independently from application execution, allowing monitoring without modifying application integrity.
Solution Approach 2:
An agent acts as an intermediary between the application code and monitoring functions. The agent loads instrumentation code and processes it separately from application execution, mediating between the need for monitoring and the requirement to preserve application code integrity without direct code insertion.
2Measurement precision
If language-specific agents are used for monitoring, then monitoring precision is improved, but system complexity and administrative overhead worsen
Solution Approach 1:
The agent is designed with universal functionality to handle multiple programming languages through a single unified implementation. The agent can process instrumentation code for different languages (Java, .NET, JavaScript) without requiring separate language-specific agents, reducing system complexity while maintaining monitoring precision across diverse platforms.
Data Source
AI summary
To facilitate runtime monitoring and analysis of an application without modifying the actual application code, an agent monitors and analyzes an application through detection and evaluation of invocations of an API of a runtime engine provided for execution of the application. The agent registers to receive events which are generated upon invocation of target functions of the runtime engine API based on its load. Once loaded, the agent initially determines the language and language version number of the runtime engine. The agent determines associations of events for which to monitor and corresponding analysis code to execute upon detection of the invocations based on the language and version number information. When the agent detects an event during execution of the application based on invocations of the runtime engine API, the agent can monitor and analyze execution of the application based on execution of analysis code corresponding to the detected event.


