Dynamic Code Extension for Application Diagnostics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional monitoring products for web-based applications face challenges in dynamically updating instrumentation without disrupting service, requiring lengthy downtime and skilled expertise, making it difficult to implement customized changes.

Innovation Solution

An application diagnostics apparatus with an instrumentation engine that monitors methods of a call chain using an instrumentation file, allowing code extensions to be dynamically loaded and updated without restarting the application, enabling precise and non-invasive performance monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional monitoring products use fixed instrumentation applied to measuring server requests, then monitoring coverage is established, but customization and dynamic changes are difficult requiring application shutdown

Engineering Contradiction:
Improvecustomization capabilityVSAvoidapplication downtime
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system enables dynamic loading and updating of code extensions during application runtime without requiring shutdown. The instrumentation engine loads code extensions from resource files on-demand and allows replacement of monitoring logic while the application remains operational, transforming fixed instrumentation into a dynamic, adaptable system.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The monitoring functionality is segmented into separate code extensions that can be independently loaded, managed, and updated. Each code extension represents a modular unit of monitoring logic that can be customized without affecting the core application or other monitoring components, enabling independent customization and updates.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If customized changes are deployed to underlying instrumentation, then monitoring precision is improved, but deployment complexity and time increase significantly

Engineering Contradiction:
Improvemonitoring precisionVSAvoiddeployment complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system uses templates for code extensions that provide pre-defined monitoring logic structures. These templates can be copied and customized with specific parameters rather than creating monitoring logic from scratch, reducing deployment complexity while maintaining precision. The template mechanism allows replication of proven monitoring patterns.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The instrumentation engine acts as an intermediary layer between the application and custom monitoring logic. It manages the loading, execution, and updating of code extensions, shielding users from complex deployment procedures. The engine handles class loading, method interception, and data collection automatically, simplifying the customization process.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If application is shut down for lengthy period to deploy customized changes, then instrumentation updates are implemented, but service availability and revenue generation are reduced

Engineering Contradiction:
Improveease of instrumentation updateVSAvoidservice availability
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system maintains continuous application operation and service availability while instrumentation updates are deployed. Code extensions can be loaded and updated in the background without interrupting the application's useful actions. The hot-swapping capability ensures that monitoring logic can be refreshed while the application continues to serve customers and generate revenue.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

Code extensions are prepared and validated before being loaded into the running application. The instrumentation engine can pre-load extensions into memory or validate them against the running application's class structure, ensuring compatibility before activation. This preliminary preparation eliminates the need for application shutdown during the actual update process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10896117B2Application instrumentation code extension
Publication Date: 2021.01.19 BMC HELIX INC
  • US10896117B2 patent drawing
  • US10896117B2 patent drawing
  • US10896117B2 patent drawing

AI summary

The embodiments provide an application diagnostics apparatus including an instrumentation engine configured to monitor one or more methods of a call chain of the application in response to a server request according to an instrumentation file specifying which methods are monitored and which methods are associated with a code extension, an extension determining unit configured to determine that at least one monitored method is associated with the code extension based on code extension identification information, a class loading unit configured to load the code extension from a resource file when the at least one monitored method associated with the code extension is called within the call chain, a code extension execution unit configured to execute one or more data collection processes, and a report generator configured to generate at least one report for display based on collected parameters.