Patent ID: 9251026
Filing Date: 2016-02-02
CPC Classification: G06F

Claim Text:
1. An application diagnostics apparatus comprising: at least one processor; a non-transitory computer-readable storage medium including instructions executable by the at least one processor, the instructions configured to implement, an instrumentation engine configured to monitor an application executing on an application server based on an instrumentation file including monitoring one or more methods of a call chain of the application in response to a server request directed to the application, the instrumentation file specifying which methods are monitored and which methods are associated with a code extension, the instrumentation engine configured to perform a data collection process including collecting performance information related to the methods specified in the instrumentation file, the code extension including logic for supplementing the data collection process of the instrumentation file; an extension determining unit configured to determine that at least one specified method is associated with the code extension based on code extension identification information being included in the instrumentation file, the code extension identification information identifying the code extension associated with the at least one specified method and a location in which the code extension is located within a resource file; a class loading unit configured to dynamically insert the code extension into the application without restarting the application including selecting a class loader that was used to load the application in a manner that class loading delegation is bypassed and loading the code extension from the resource file using the selected class loader based on the code extension identification information when the at least one specified method associated with the code extension is called within the call chain, the class loading unit being configured to bypass the class loading delegation by renaming a class name associated with the code extension to a unique class name such that a parent class loader is not used to load the code extension; a code extension execution unit configured to collect additional performance information regarding execution of the application as specified by the code extension; and a report generator configured to generate at least one report for display based on at least one of the collected performance information relating to the instrumentation file and the collected additional performance information relating to the code extension.