Intercept Function Interval Tree for Application Performance Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application performance monitoring tools face challenges in accurately monitoring monolithic applications and distributed systems, with offline tools having low timing accuracy and high performance overhead, and online tools being error-prone and intrusive, while also failing to effectively monitor both monolithic and distributed systems.

Innovation Solution

A method involving the generation of an interval tree by identifying addresses for functions or variables in target code, intercepting communication between the target code and call addresses, and storing intercepted data as function nodes in the interval tree for transmission to a user device, allowing for effective monitoring of both monolithic and distributed systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If offline application performance monitoring tools are used, then performance overhead is reduced, but timing accuracy deteriorates

Engineering Contradiction:
Improveperformance overheadVSAvoidtiming accuracy
Core Design Contradiction:
Loss of energyVSMeasurement precision

Solution Approach 1:

The patent introduces an intercept function as an intermediary component that sits between the target code and the monitoring system. This intercept function captures runtime information without requiring explicit instrumentation in the target code, thereby maintaining low performance overhead while achieving high timing accuracy through precise interception of function calls and returns.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If online application performance monitoring tools using explicit instrumentation are used, then timing accuracy is improved, but the system becomes error-prone and intrusive

Engineering Contradiction:
Improvetiming accuracyVSAvoiderror-prone
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The intercept function serves as a mediator that centralizes the monitoring logic outside the target code path. This eliminates errors associated with explicit instrumentation by removing the need to modify target code with monitoring statements, while still achieving accurate timing measurements through the intermediary's controlled interception points.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The monitoring functionality is extracted from the target code and placed in a separate intercept function. This extraction removes the intrusive instrumentation code from the application logic, reducing the risk of errors in the target code while maintaining the ability to capture precise runtime information.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If traditional monitoring tools are used, then monitoring capability is limited, but device complexity is reduced

Engineering Contradiction:
Improvemonitoring capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The intercept function is designed as a universal monitoring mechanism that can monitor both monolithic applications and distributed systems through the same interface. The system automatically adapts to different application types by intercepting standard function calls, providing multi-functionality without requiring separate monitoring solutions for different system architectures.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20240403197A1Application performance monitoring for monolithic applications and distributed systems
Publication Date: 2024.12.05 ORACLE INT CORP
  • US20240403197A1 patent drawing
  • US20240403197A1 patent drawing
  • US20240403197A1 patent drawing

AI summary

A computing device may access a target code for implementing an application. The device may identify addresses for one or more functions or one or more variables associated with the target code. The device may generate an interval tree comprising a root node and one or more function nodes. The device may in response to the target code invoking a function or variable: generate an intercept function configured to intercept communication between the target code and a call address for the at least one of the one or more functions or the one or more variables invoked by the target code. The device may intercept data communicated between the target code and the call address. The device may store the intercepted data as a function node in the interval tree. The device may transmit the interval tree to a user device.