Selecting instrumentation points for an application

US9009680B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9009680-B2
Application numberUS-61205806-A
CountryUS
Kind codeB2
Filing dateDec 18, 2006
Priority dateNov 30, 2006
Publication dateApr 14, 2015
Grant dateApr 14, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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 and 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 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. 2. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises parsing HyperText Transport Protocol (HTTP) requests to the application to obtain parameters of the HTTP requests, comparing the parameters of the HTTP requests to at least one pattern associated with an interaction model for the application to determine at least one of the HTTP requests which corresponds to the at least one pattern associated with the interaction model for the application, and selecting the first subset of components by selecting components of the first set of components which are invoked by the at least one of the HTTP requests. 3. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components based on an order in which the components of the first set of components are invoked during the running of the application with the first set of components. 4. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which a resource utilization exceeds a threshold during the running of the application with the first set of components. 5. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which at least one of a consumption of processor cycles or an execution time exceeds a threshold during the running of the application with the first set of components. 6. The computer-implemented method of claim 1 , further comprising: determining an instrumentation overhead of each component of the first set of components during the running of the application with the first set of components, based on a ratio of central processing unit (CPU) cycles consumed by instrumentation of each component of the first set of components to CPU cycles consumed when each component of the first set of components is invoked, the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which the instrumentation overhead is determined to be below a threshold. 7. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which are called with a frequency above an associated threshold during the running of the application with the first set of components. 8. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which are called by a number of other components which exceeds an associated threshold during the running of the application with the first set of components. 9. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components for which a number of multiple instances which exceeds a threshold are in use simultaneously during the running of the application with the first set of components. 10. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which at least one of: provide an entry point into another component, make method calls to other components or have a length which exceeds a length threshold. 11. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by selecting components of the first set of components which have a variance in execution time which exceeds a threshold during the running of the application with the first set of components. 12. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by determining which of the components of the first set of components is first invoked when processing a request during the running of the application with the first set of components, the first subset of components including the component of the first set of components which is first invoked. 13. The computer-implemented method of claim 1 , wherein: the distinguishing during the one iteration comprises selecting the first subset of components by determining which of the components of the first set of components is last invoked when processing a request during the running of the application with the first set of components, the first subset of components including the c

Assignees

Inventors

Classifications

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • by performing operations on the source code, e.g. via a compiler · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9009680B2 cover?
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 su…
Who is the assignee on this patent?
Cobb Jeffrey R, Puryear Daryl L, Thio Ling, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F11/3624. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 14 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).