Instrumenting an application with flexible tracers to provide correlation data and metrics
First Claim
1. A computer-implemented method for instrumenting an application, comprising:
- editing a probe builder file in a software instrumentation product by adding uncompiled instructions to the probe builder file, the probe builder file comprising tracers for an application, and the uncompiled instructions specify one trace point in the application, a parameter to evaluate at the one trace point, and an operator for at least one of number comparison, object comparison, string comparison or Boolean comparison;
using the probe builder file, creating an instrumented application comprising;
compiled code of the application, the compiled code is modified to add the tracers, and the uncompiled instructions, the uncompiled instructions provide a tracer which augments the tracers in the software instrumentation product;
executing the instrumented application;
when the one trace point is invoked in the instrumented application, in a client process of a transaction, interpreting the uncompiled instructions and, in response, providing a value for the parameter by applying the operator to a first value and a second value, the first value is based on an invoked method at the one trace point and the second value is based on an invoked method at another trace point;
providing the parameter in a call from the client process to a server process; and
communicating the parameter to a manager, the manager uses the parameter to correlate the client and server processes as being part of the transaction.
2 Assignments
0 Petitions
Accused Products
Abstract
A technique for flexibly adding instrumentation to an application. A file is created which includes a dynamic parameter syntax. The file identifies a trace point in the application, such as a method, and the syntax includes one or more parameters which are evaluated when the method is invoked. The parameters can be used to provide cross-process correlation and/or performance metrics. A client process which calls a server process can include the parameter in a message header according to any desired transport protocol, such as HTTP or JMS. Different application protocols and implementation can be accommodated to track a transaction which executes on different platforms. The dynamic parameter syntax is interpreted as uncompiled code and is designed to be added by the user in the field to augment a package of pre-built instrumentation software after the package has been deployed.
33 Citations
16 Claims
-
1. A computer-implemented method for instrumenting an application, comprising:
-
editing a probe builder file in a software instrumentation product by adding uncompiled instructions to the probe builder file, the probe builder file comprising tracers for an application, and the uncompiled instructions specify one trace point in the application, a parameter to evaluate at the one trace point, and an operator for at least one of number comparison, object comparison, string comparison or Boolean comparison; using the probe builder file, creating an instrumented application comprising;
compiled code of the application, the compiled code is modified to add the tracers, and the uncompiled instructions, the uncompiled instructions provide a tracer which augments the tracers in the software instrumentation product;executing the instrumented application; when the one trace point is invoked in the instrumented application, in a client process of a transaction, interpreting the uncompiled instructions and, in response, providing a value for the parameter by applying the operator to a first value and a second value, the first value is based on an invoked method at the one trace point and the second value is based on an invoked method at another trace point; providing the parameter in a call from the client process to a server process; and communicating the parameter to a manager, the manager uses the parameter to correlate the client and server processes as being part of the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A processor readable storage device comprising processor readable code embodied thereon for programming a processor to perform a method for instrumenting an application, the method comprising:
-
editing a probe builder file in a software instrumentation product by adding uncompiled instructions to the probe builder file, the probe builder file comprising tracers for an application, and the uncompiled instructions specify one trace point in the application, a parameter to evaluate at the one trace point and an operator for at least one of number comparison, object comparison, string comparison or Boolean comparison; using the probe builder file, creating an instrumented application comprising;
compiled code of the application, the compiled code is modified to add the tracers, and the uncompiled instructions, the uncompiled instructions provide a tracer which augments the tracers in the software instrumentation product, and the tracers in the software instrumentation product provide a baseline set of instrumentation;executing the instrumented application; when the one trace point is invoked in the instrumented application, in a client process of a transaction, interpreting the uncompiled instructions and, in response, providing a value for the parameter by applying the operator to a first value and a second value, the first value is based on an invoked method at the one trace point and the second value is based on an invoked method at another trace point; and communicating the parameter to a manager, the manager uses the parameter to correlate the client process and an associated server process as being part of the transaction. - View Dependent Claims (14, 15, 16)
-
Specification