Dynamic Code Extension for Application Diagnostics
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Measurement precision
If customized changes are deployed to underlying instrumentation, then monitoring precision is improved, but deployment complexity and time increase significantly
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.
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.
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
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.
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.
Data Source
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.


