Automated Two-Pass Software Instrumentation for Dynamic Probe Adjustment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software monitoring techniques face challenges in selecting the appropriate components to instrument, leading to either excessive overhead or missed information, and require user intervention, making it time-consuming and confusing for administrators.

Innovation Solution

Automated two-pass instrumentation process that analyzes the application statically to determine which components to probe, inserts probes while the application is not running, and dynamically modifies them based on performance metrics, such as invocation rate and execution time, without requiring user intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If an over-inclusive approach is used to instrument components, then more information is collected, but overhead costs increase and application operation may be impaired

Engineering Contradiction:
Improveinformation collection completenessVSAvoidapplication operation efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent implements dynamic instrumentation where the set of instrumented components is not fixed but adapts based on runtime conditions. The system automatically determines which components to instrument during execution, allowing the instrumentation configuration to change dynamically based on observed application behavior, thereby optimizing the balance between information collection and performance overhead

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of instrumentation coverage by automatically adjusting which components are instrumented based on runtime metrics and analysis. This parameter adjustment allows the system to collect sufficient information while minimizing overhead, as the instrumentation scope is optimized rather than being statically over-inclusive

Inventive Principle:
Principle #35Parameter changes

2Productivity

If an under-inclusive approach is used to instrument components, then overhead costs are reduced, but important information is missed

Engineering Contradiction:
Improveapplication operation efficiencyVSAvoidinformation collection completeness
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system performs self-service by automatically analyzing its own runtime behavior and autonomously determining which components require instrumentation. This self-directed approach eliminates the need for user configuration while ensuring that the right components are instrumented based on actual application needs, preventing both information loss and excessive overhead

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms where runtime data from instrumented components is continuously analyzed, and this feedback informs subsequent instrumentation decisions. The system uses observed performance metrics and call patterns to adjust which components should be instrumented, ensuring important information is captured while maintaining efficiency

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If user intervention is required to determine which components to instrument, then customization is possible, but the process becomes time-consuming and confusing

Engineering Contradiction:
Improveinstrumentation customizationVSAvoidconfiguration time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system eliminates the need for user intervention by implementing self-service automation. The instrumentation process autonomously analyzes the application, determines appropriate components to instrument, and configures the instrumentation without user input, thereby eliminating configuration time while maintaining adaptability through intelligent automated decision-making

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary automated analysis of the application structure and runtime behavior before instrumentation is applied. This preliminary action allows the system to pre-determine the optimal instrumentation configuration, eliminating the need for time-consuming user configuration while ensuring appropriate customization based on application characteristics

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8938729B2Two pass automated application instrumentation
Publication Date: 2015.01.20 CA TECH INC
  • US8938729B2 patent drawing
  • US8938729B2 patent drawing
  • US8938729B2 patent drawing

AI summary

A two-pass technique for instrumenting an application is disclosed. One pass may be performed statically by analyzing the application and inserting probes while the application is not running. Another pass may be performed dynamically by analyzing data collected by the probes while the application runs to derive metrics for the probes. One or more metrics for each probe may be analyzed to determine whether to dynamically modify the probe. By dynamically modifying the probe, the application does not need to be shut down. Dynamically modifying the probe could include removing the probe from the application or moving the probe to another component (e.g., method) in the application, as examples. For example, the probe might be moved to a component that is either up or down the call graph from the component that the probe is presently in.