Selecting instrumentation points for an application
First Claim
1. A computer-implemented method for selecting instrumentation points for an application, comprising:
- performing a static analysis of components of an application, the performing the static analysis comprises determining which of the components are worthy of instrumenting, the determining which of the components are worthy of instrumenting comprises determining which of the components are of at least one specific type which is of interest;
instrumenting the components which are determined to be worthy of instrumenting based on the static analysis to provide a first set of components, each component of the first set of components is instrumented with a probe which is initially made active so that the probe will be tripped and send component data to an agent when the component of the first set of components is invoked;
in one iteration of a filtering process;
running the application with the first set of components while monitoring the first set of components based on probes of the first set of components,based on the monitoring of the first set of components, for each component of the first set of components;
assigning a first score based on a first selection criterion, assigning a second score based on a second selection criterion, and providing a total score based on the first score and the second score andbased on the total scores, distinguishing a first subset of components of the first set of components for which active instrumentation is to be maintained from a second subset of components of the first set of components for which active instrumentation is not to be maintained; and
in another iteration of the filtering process;
running the application with the first subset of components while keeping probes for the first subset of components active and making probes for the second subset of components inactive, where the probes for the second subset of components remain in the application, and do not send component data to an agent, in the another iteration, and while monitoring the first subset of components based on the probes of the components of the first set of components,based on the monitoring the first subset of components, assessing the first subset of components using another selection criterion, andbased on the assessing the first subset of components, distinguishing a subset of the first subset of components for which active instrumentation is to be maintained in subsequent running of the application from a subset of the first subset of components for which active instrumentation is not to be maintained in the subsequent running of the application.
2 Assignments
0 Petitions
Accused Products
Abstract
Instrumentation points are selected for an application by running the application with comprehensive instrumentation of its components in a development mode. The application can be run by a human operator and/or load simulator which provides requests to the application. The instrumented components are monitored as the application runs. A subset of the components is selected based on criteria such as an order in which the instrumented components are invoked, whether resource utilization, such as consumption of processor cycles, exceeds a threshold, or a frequency with which components are called or call other components, and only that subset is instrumented in a production mode of the application. In one approach, the subset includes components which are invoked when traffic to/from the application matches a pattern provided by an interaction model. As a result, relevant instrumentation points can be identified.
-
Citations
31 Claims
-
1. A computer-implemented method for selecting instrumentation points for an application, comprising:
-
performing a static analysis of components of an application, the performing the static analysis comprises determining which of the components are worthy of instrumenting, the determining which of the components are worthy of instrumenting comprises determining which of the components are of at least one specific type which is of interest; instrumenting the components which are determined to be worthy of instrumenting based on the static analysis to provide a first set of components, each component of the first set of components is instrumented with a probe which is initially made active so that the probe will be tripped and send component data to an agent when the component of the first set of components is invoked; in one iteration of a filtering process; running the application with the first set of components while monitoring the first set of components based on probes of the first set of components, based on the monitoring of the first set of components, for each component of the first set of components;
assigning a first score based on a first selection criterion, assigning a second score based on a second selection criterion, and providing a total score based on the first score and the second score andbased on the total scores, distinguishing a first subset of components of the first set of components for which active instrumentation is to be maintained from a second subset of components of the first set of components for which active instrumentation is not to be maintained; and in another iteration of the filtering process; running the application with the first subset of components while keeping probes for the first subset of components active and making probes for the second subset of components inactive, where the probes for the second subset of components remain in the application, and do not send component data to an agent, in the another iteration, and while monitoring the first subset of components based on the probes of the components of the first set of components, based on the monitoring the first subset of components, assessing the first subset of components using another selection criterion, and based on the assessing the first subset of components, distinguishing a subset of the first subset of components for which active instrumentation is to be maintained in subsequent running of the application from a subset of the first subset of components for which active instrumentation is not to be maintained in the subsequent running of the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
15. At least one processor readable memory having processor readable code embodied thereon, at least one processor is programmed by the processor readable code and performs a method comprising:
-
performing a static analysis of components of an application, the performing the static analysis comprises determining which of the components are worthy of instrumenting, the determining which of the components are worthy of instrumenting comprises determining which of the components are of at least one specific type which is of interest; instrumenting the components which are determined to be worthy of instrumenting based on the static analysis to provide a first set of components, each component of the first set of components is instrumented with a probe which is initially made active so that the probe will be tripped and send component data to an agent when the component of the first set of components is invoked; running the application with the first set of components with the probes which are made active; monitoring the first set of components during the running based on the probes which are made active; and based on the monitoring; for each component of the first set of components;
assigning a first score based on a first selection criterion, assigning a second score based on a second selection criterion, and providing a total score based on the first score and the second score,based on the total scores, distinguishing a first subset of components of the first set of components for which active instrumentation is to be maintained in subsequent running of the application, from a second subset of components of the first set of components for which active instrumentation is not to be maintained in the subsequent running of the application, keeping probes for the first subset of components active in the subsequent running of the application, and making probes for the second subset of components inactive in the subsequent running of the application, where the probes for the second subset of components remain in the application and do not send component data to an agent, in the subsequent running of the application. - View Dependent Claims (28)
-
-
16. A system for selecting instrumentation points for an application, comprising:
-
a storage device; and a processor in communication with the storage device, the processor; carries out a performance of a static analysis of components of an application, the performance of the static analysis comprises a determination of a plurality of the components which are worthy of instrumenting; divides the plurality of the components which are worthy of instrumenting into different sets of components comprising a first set of components and a second set of components; in one iteration of an iterative process; instruments each component of the first set of components with a probe which is made active so that the probe will be tripped and send component data to an agent when the component is invoked, runs the application with the first set of components with the probes which are made active, while the second set of components does not have probes which are made active, monitors the first set of components during the running based on the probes of the first set of components which are made active, and based on the monitoring of the first set of components, for each component of the first set of components;
assigns a first score based on a first selection criterion, assigns a second score based on a second selection criterion, and provides a total score based on the first score and the second score, and based on the total scores, distinguishes a first subset of components of the first set of components which meets a selection criterion from a second subset of components of the first set of components which does not meet the selection criterion;in another iteration of the iterative process; instruments each component of the second set of components with a probe which is made active so that the probe will be tripped and send component data to an agent when the component is invoked, runs the application with the second set of components with the probes which are made active, while the first set of components does not have probes which are made active, monitors the second set of components during the running based on the probes of the second set of components which are made active, and based on the monitoring of the second set of components, distinguishes a first subset of components of the second set of components which meets the selection criterion from a second subset of components of the second set of components which does not meet the selection criterion; and based on the one iteration and the another iteration, configures the application to subsequently run with probes which are active for the first subset of components of the first set of components and for the first subset of components of the second set of components, and to run without probes which are active for the second subset of components of the first set of components and for the second subset of components of the second set of components. - View Dependent Claims (29, 30)
-
-
31. A computer-implemented method for selecting instrumentation points for an application, comprising:
-
performing a static analysis of components of an application, the performing the static analysis comprises determining which of the components are worthy of instrumenting, the determining which of the components are worthy of instrumenting comprises determining which of the components are of at least one specific type which is of interest; instrumenting the components which are determined to be worthy of instrumenting based on the static analysis to provide a first set of components, each component of the first set of components is instrumented with a probe which is initially made active so that the probe will be tripped and send component data to an agent when the component of the first set of components is invoked; in one iteration of a filtering process; running the application with the first set of components while monitoring the first set of components based on probes of the first set of components, based on the monitoring of the first set of components, assessing the first set of components using one selection criterion, and based on the assessing the first set of components using the one selection criterion, distinguishing a first subset of components of the first set of components for which active instrumentation is to be maintained from a second subset of components of the first set of components for which active instrumentation is not to be maintained; and in another iteration of the filtering process; running the application with the first subset of components while keeping probes for the first subset of components active and making probes for the second subset of components inactive, where the probes for the second subset of components remain in the application, and do not send component data to an agent, in the another iteration, and while monitoring the first subset of components based on the probes of the components of the first set of components, based on the monitoring the first subset of components, for each component of the first subset of components;
assigning a first score based on a first selection criterion, assigning a second score based on a second selection criterion, and providing a total score based on the first score and the second score; andbased on the total scores, distinguishing a subset of the first subset of components for which active instrumentation is to be maintained in subsequent running of the application from a subset of the first subset of components for which active instrumentation is not to be maintained in the subsequent running of the application.
-
Specification