Tracer Types

apmdevops106
Tracers are the directives in PBD files that identify the application components to monitor. The tracers identify the metrics the agent collects from specific probes. You can control what is monitored by changing the PBD files to suit your environment. When you install the agent, several default PBD files are deployed to enable default monitoring of your environment. You can modify the default monitoring to achieve the balance of visibility and performance that you require.
The complete list of tracer types supported by the various agents is as follows:
Tracer
Tracer Parameters
PHP Agent
Java Agent
.NET Agent
Node.js Agent
---
no
yes
yes
no
delta,reentrancy,useblame,resultfilter,newmode,dostalls
no
yes
no
yes
ne
no
yes
no
yes
ne
no
yes
no
yes
ne
no
yes
no
yes
---
no
yes
yes
no
---
no
yes
yes
no
---
no
yes
yes
no
useblame, reentrancy
no
yes
yes
no
---
no
yes
yes
no
---
no
yes
yes
no
reentrancy
no
no
yes
no
nameformatter,newmode,useblame,agentcomponent, forcestandardmetrics
yes
yes
yes
yes
delta,reentrancy,useblame,resultfilter,newmode
yes
yes
yes
yes
useblame, reentrancy
no
yes
no
no
newmode,useblame
yes
yes
yes
yes
reentrancy,useblame,newmode
no
yes
yes
no
generatebusinesstransactionmetrics,newmode,useblame,usecomputedblame
no
yes
no
yes
reentrancy,useblame,newmode,newmetric
no
yes
yes
no
delta,reentrancy,useblame,resultfilter
no
yes
yes
no
useblame, reentrancy
no
yes
yes
no
reentrancy,useblame
no
yes
yes
no
reentrancy,useblame,newmode,newmetric
no
yes
yes
yes
reentrancy,useblame
no
yes
yes
no
reentrancy,useblame,resultfilter
no
yes
yes
no
reentrancy,useblame,newmode
no
yes
yes
no
---
no
yes
no
no
useblame, reentrancy
no
yes
yes
no
delta,reentrancy,resultfilter
no
yes
yes
no
---
no
yes
yes
no
delta,reentrancy,useblame
no
yes
yes
no
reentrancy,useblame
no
yes
no
no
nameformatter,newmode,useblame,reentrancy
no
no
no
yes
nameformatter,newmode,useblame,reentrancy
no
no
no
yes
nameformatter, paramkeys
no
no
no
yes
paramkeys
no
no
no
yes
reentrancy,useblame
no
yes
yes
no
---
no
yes
yes
no
---
no
yes
yes
no
---
no
yes
yes
no
reentrancy,useblame
no
yes
yes
no
---
no
yes
yes
no
useblame, reentrancy
no
yes
yes
no
com.wily.introscope.agent.servletheaderdecorator.HTTPHeaderDecorator
Decorates HTTP responses from servlets with a unique identifier, allowing the correlation of CEM defects and Introscope transaction traces. In CEM, necessary to generate application server details for defective transactions and to present hyperlinks from defect and incident detail pages to transaction traces and metrics in the Introscope workstation. Applicable only to servlet method service() & JSP method _jspservice(). Requires the servlet container to implement 2.1 specification or later. Must be used with a
WithParameters
directive. Does not generate metrics.
com.wily.introscope.agent.sqlagent.hc2.SQLStatementBlamePointTracer
Supported on Java and  Node.js agents.
It generates five separate metrics for each SQL query, insert or update statement, based on the SQL text. Five BlamePointTracer metrics will appear under the Resource "Backends|{database}|SQL|{commandtype}|Query|{sql}". This tracer supports various database drivers and will be able to extract the database name, command type (Dynamic or Prepared), SQL query string (exact SQL statement).
Supports the following database drivers: Oracle for Oracle, BEA for Oracle, Oracle RAC DB, BEA for Pointbase, IBM for DB2, IBM for Informix, SAP for MaxDB.
com.wily.introscope.agent.trace.backend.http.tracer.HttpClientMethodThrewErrorReportingTracer
Provides a backend error metric for an HTTP client call made by a node/java application. The metric is separated by URL path groups that are configured in the agent profile. The metric reporting path is "Backends|WebService at {protocol}_//{host}_{port}|Paths|{path}:Errors Per Interval."
com.wily.introscope.agent.trace.backend.http.tracer.HttpURLConnectionBackendTracer
Provides aggregated blame point metrics for an HTTP client call made by a node/java application. The metrics appear under the resource: "Backends|WebService at {protocol}_//{host}_{port}."
com.wily.introscope.agent.trace.backend.http.tracer.HttpURLConnectionBlamePointTracer
Provides blame point metrics that are separated by the URL path group of an HTTP client call made by a node/java application. You can configure URL path groups in the agent profile. The metrics appear under the resource: "Backends|WebService at {protocol}_//{host}_{port}|Paths|{path}."
com.wily.introscope.agent.trace.BlamedComponentTimer
Deprecated.
com.wily.introscope.agent.trace.BlamedConcurrentComponentTimer
Deprecated.
com.wily.introscope.agent.trace.BlamedMethodInvocationCounter
Deprecated.
com.wily.introscope.agent.trace.ConcurrentInvocationCounter
Calculates the number of method invocations that have not completed at the end of the interval period. This tracer will factor in every method invocation.
Default metric name: Concurrent Invocations or Concurrent Method Invocations.
com.wily.introscope.agent.trace.ConcurrentResponseTimer
Deprecated.
com.wily.introscope.agent.trace.DumpStackTraceTracer
Dumps a stack trace to the instrumented application's stderr for methods to which it is applied. The exception stack trace thrown by DumpStackTraceTracer is not a true exception - it is a mechanism for printing the method stack trace. This tracer does not produce a metric, therefore the "<Investigator Tree Path>" declaration is ignored, but is still required - must be of the form "<non-empty-character>:<non-empty character>" in order to parse properly. Warning: This feature imposes heavy system overhead.
com.wily.introscope.agent.trace.hc2.FullTTDetailsTracer
FullTTDetailsTracer can be attached to an application to allow the user to discover the call paths of their application in order to build a more targeted PBD.
A Transaction Trace session (manual or automatic) needs to be running for the FullTTDetailsTracer to be invoked. The tracer creates transaction traces only, no metrics.
Class
com.wily.introscope.agent.trace.hc2.FullTTDetailsTracer
Declaration
SetTracerClassMapping: FullTTDetailsNewModeTracer com.wily.introscope.agent.trace.hc2.FullTTDetailsTracer com.wily.introscope.probebuilder.validate.ResourceNameValidator
SetTracerOrdering: FullTTDetailsNewModeTracer -500
Usage example
Add to SocketTracing tracer group to record all System.Net.Sockets.* method calls and parameters.
IdentifyMatchingClassesAs: System.Net.Sockets.* SocketTracing
TraceAllMethodsIfFlagged: SocketTracing FullTTDetailsNewModeTracer "FullTTDetailsNewModeTracer|{classname}|{method}"
com.wily.introscope.agent.trace.hc2.BackendTracer
Generates five separate metrics for associated methods or classes. The Errors Per Interval metric will be generated, but will always report a value of 0 (zero) when this tracer type is used alone. To generate non-zero Errors Per Interval metric values, also apply ExceptionErrorReporter to associated methods or classes. The Stall Count metric threshold is set by the property introscope.agent.stalls.thresholdseconds in the IntroscopeAgent.profile. Metric naming is automatic. Explicitly identifies methods as Backends metrics, i.e. those that were not automatically identified by Introscope out of the box, as representing calls to backend systems. Participate in the Application Overview grid and heuristics. Generated metrics will appear under the Backends folder and Called Backends folder and are automatically named. The Investigator Tree Path name declaration is "<Resource>", without the explicit ":<Metric>" naming portion. Blame is implicit, but does not apply to Concurrent Invocations. This tracer will factor in every method invocation.
Default metric names:
  • Average Response Time (ms)
  • Concurrent Invocations
  • Errors Per Interval
  • Responses Per Interval
  • Stall Count
Example:
Suppose that your application does not use any standard out-of-the-box backends like JDBC or web client, but you know that it has several Java objects that do backend operations. These classes can be, for example,
com.wily.test.MyBackendClass
and
com.wily.test.MyAnotherBackendClass
. Both these classes implement the
execute()
method that takes care of the communication with the backend.
In this case, the following PBD snippet produces backend metrics and provides backend components to transaction traces:
SetFlag: Group1
IdentifyClassAs: com.wily.test.MyBackendClass Group1
IdentifyClassAs: com.wily.test.MyAnotherBackendClass Group1
TurnOn: Group1
TraceOneMethodWithParametersIfFlagged: Group1 execute BackendMarker "My Internal Backend"
com.wily.introscope.agent.trace.hc2.BlamePointTracer
Generates the following 5 separate default metrics for associated methods or classes:
  • Average Response Time
    -- reported in ms
  • Concurrent Invocations
    – factors in every method invocation. Blame is not implicit
  • Errors Per Interval
    – is generated, but will always report a value of 0 (zero) when this Tracer Type is used alone. To generate non-zero
    Errors Per Interval
    metric values, you must also apply
    ExceptionErrorReporter
    to associated methods or classes.
  • Responses Per Interval
  • Stall Count
     – set the threshold using the property
    introscope.agent.stalls.thresholdseconds
    in the
    IntroscopeAgent.profile
    .
Metric naming is automatic. The Investigator Tree Path name declaration is
"<Resource>"
, without the explicit
":<Metric>"
naming portion.
Blame is implicit, except for Concurrent Invocations.
com.wily.introscope.agent.trace.hc2.ComponentTimeAutoTraceTriggerTracer
Triggers automatic transaction traces based on exceeded component response times. When smart instrumentation is enabled, highly optimized, low overhead tracers collect an automatic transaction trace under specific trigger conditions. For example, when an error occurs or the ComponentTimeAutoTraceTriggerTracer tracer is deployed and a component response time is exceeded. Automatic transaction traces display deep visibility components and have characteristics that differ from non-automatic transaction traces, such as manual and sample traces. When ComponentTimeAutoTraceTriggerTracer triggers a transaction trace, the first component in the trace includes the Auto Trace Trigger Criteria component details property. The property displays: Response Time <
component name
> Threshold Value exceeded <
value
>.
com.wily.introscope.agent.trace.hc2.FrontendTracer
The
FrontendMarker
tracer type explicitly identifies methods as Frontends metrics. This tracer type overrides frontends that Introscope automatically identifies as representing the point of entry to the application.
The
FrontendMarker
tracer type generates five separate metrics for associated methods or classes:
  • Average Response Time (ms)
  • Concurrent Invocations
  • Errors Per Interval
  • Responses Per Interval
  • Stall Count
When
FrontendMarker
is used alone, it generates the Errors Per Interval metric that always reports a value of 0 (zero). To generate non-zero Errors Per Interval metric values, also apply
ExceptionErrorReporter
to associated methods or classes.
The property
introscope.agent.stalls.thresholdseconds
in the IntroscopeAgent.profile sets the Stall Count metric threshold.
Metric naming is automatic.
Generated metrics appear under the Frontends folder and are automatically named. The Investigator tree pathname declaration is <
Resource
>, without the explicit <
Metric
> naming portion. To participate in the Application Overview grid and heuristics, the resource name declaration must be formatted as
Apps|<Resource>
. Blame is implicit, but does not apply to the Concurrent Invocations metric. This tracer factors in every method invocation.
com.wily.introscope.agent.trace.hc2.HTTPErrorCodeReporter
Reports the number of errors sent per interval from servlets and JSPs. Gathers the error message from the JSP and servlet method parameter values. In order to capture the error message, it must be used with a
WithParameters
directive, otherwise it will only increment the Errors Per Interval metric. Not recommended to be used in custom PBDs. To see error messages, it requires ErrorDetector, otherwise it will only increment the Errors Per Interval metric. Requires Agent be at 6.0 or later. Blame is implicit.
Default Metric Name:
Errors Per Interval
com.wily.introscope.agent.trace.hc2.HttpServletTracer
Traces HTTP request handling logic in a node/java application. This tracer performs URL normalization and puts five BlamePoint metrics under the "Frontends|Apps|<app_name>|URLs" in the metric tree. It also establishes the component as the frontend in boundary blame.
com.wily.introscope.agent.trace.hc2.MethodCompletedErrorReportingTracer
A per interval counter based on methods where the very act of the method being called means that an error has occurred. The error message is based on the class and method called. In order to capture the error message, it must be used with a
WithParameters
directive and requires ErrorDetector, otherwise it will only increment the Errors Per Interval metric. Requires Agent to be at 6.0 or later. Blame is implicit.
Default Metric Name:
Errors Per Interval
com.wily.introscope.agent.trace.hc2.MethodFinishCounter
  • BlamedMethodTraceDecrementor
    Perpetual counter that decreases by 1 for each completion of a method invocation from another object instance. Blame enabled.
  • BlamedMethodTraceIncrementor
    Perpetual counter that increases by 1 for each completion of a method invocation from another object instance. Blame enabled.
  • BlamedNormalCompletionMethodTraceDecrementor
    Perpetual counter that decreases by 1 for each method invocation from another object instance that completes without throwing an exception. Blame enabled.
  • BlamedNormalCompletionMethodTraceIncrementor
    Perpetual counter that increases by 1 for each method invocation from another object instance that completes without throwing an exception. Blame enabled.
  • BlamedNormalCompletionSimpleDecrementor
    Perpetual counter that decreases by 1 for each method invocation that completes without throwing an exception, regardless of whether called from another object instance or the same object instance. Blame enabled.
  • BlamedNormalCompletionSimpleIncrementor
    Perpetual counter that increases by 1 for each method invocation that completes without throwing an exception, regardless of whether called from another object instance or the same object instance. Blame enabled.
  • BlamedSimpleDecrementor
    Perpetual counter that decreases by 1 for each completion of a method invocation, regardless of whether from another object instance or the same object instance. Blame enabled.
  • BlamedSimpleIncrementor
    Perpetual counter that increases by 1 for each completion of a method invocation, regardless of whether from another object instance or the same object instance. Blame enabled.
  • BlamedThrownExceptionMethodTraceDecrementor
    Perpetual counter that decreases by 1 for each exception thrown by a method, caught or not, when called from another object instance. Blame enabled.
  • BlamedThrownExceptionMethodTraceIncrementor
    Perpetual counter that increases by 1 for each exception thrown by a method, caught or not, when called from another object instance. Blame enabled.
  • BlamedThrownExceptionSimpleDecrementor
    Perpetual counter that decreases by 1 for each exception thrown by a method, caught or not, regardless of whether called from another object instance or the same object instance. Blame enabled.
  • BlamedThrownExceptionSimpleIncrementor
    Perpetual counter that increases by 1 for each exception thrown by a method, caught or not, regardless of whether called from another object instance or the same object instance. Blame enable.
  • MethodTraceDecrementor
    Perpetual counter that decreases by 1 for each completion of a method invocation from another object instance.
  • MethodTraceIncrementor
    Perpetual counter that increases by 1 for each completion of a method invocation from another object instance.
  • NormalCompletionSimpleDecrementor
    Perpetual counter that decreases by 1 for each method invocation that completes without throwing an exception, regardless of whether called from another object instance or the same object instance.
  • NormalCompletionSimpleIncrementor
    Perpetual counter that increases by 1 for each method invocation that completes without throwing an exception, regardless of whether called from another object instance or the same object instance.
  • SimpleDecrementor
    Perpetual counter that decreases by 1 for each completion of a method invocation, regardless of whether from another object instance or the same object instance.
  • SimpleIncrementor
    Perpetual counter that increases by 1 for each completion of a method invocation, regardless of whether from another object instance or the same object instance.
  • ThrownExceptionMethodTraceDecrementor
    Perpetual counter that decreases by 1 for each exception thrown by a method, caught or not, when called from another object instance.
  • ThrownExceptionMethodTraceIncrementor
    Perpetual counter that increases by 1 for each exception thrown by a method, caught or not, when called from another object instance.
  • ThrownExceptionSimpleDecrementor
    Perpetual counter that decreases by 1 for each exception thrown by a method, caught or not, regardless of whether called from another object instance or the same object instance.
  • ThrownExceptionSimpleIncrementor
    Perpetual counter that increases by 1 for each exception thrown by a method, caught or not, regardless of whether called from another object instance or the same object instance.
com.wily.introscope.agent.trace.hc2.MethodNanoTimer
Calculates the method execution time (in nanoseconds) of methods that have completed during the reported interval. This tracer will factor in every method invocation. This tracer provides nanosecond precision, but not necessarily nanosecond accuracy; it relies on the JVM to provide the current value of the most precise available system timer, in nanoseconds.
Default Metric Name:
Average Response Time (ns)
com.wily.introscope.agent.trace.hc2.MethodRateTracer
Calculates the number of invocations per second. For a 15 second interval, the remainder (14 or less) will be truncated. This tracer will factor in every method invocation.
Default Metric Name:
Responses Per Second or Invocations Per Second
com.wily.introscope.agent.trace.hc2.MethodThrewErrorReportingTracer
A per interval counter based on the number of exceptions being thrown (i.e. uncaught) from the identified method(s). If an exception is thrown, the error message is based on the return value of the getMessage() method called on the exception object. In order to capture the error message, it must be used with a
WithParameters
Directive, otherwise it will only increment the Errors Per Interval metric. To see error messages, it requires ErrorDetector, otherwise it will only increment the Errors Per Interval metric. Requires Agent be at 6.0 or later. Blame is implicit.
Default Metric Name:
Errors Per Interval
com.wily.introscope.agent.trace.hc2.MethodTimer
Calculates the method execution time (in milliseconds) of methods that have completed during the reported interval. This tracer will factor in every method invocation.
Default Metric Name:
Average Response Time (ms) or Average Method Invocation Time (ms) or Average Query Time (ms)
com.wily.introscope.agent.trace.hc2.PerIntervalCounter
Calculates the number of invocations that completed during the time interval. This tracer will factor in every method invocation.
Default Metric Name:
Responses Per Interval or Method Invocations Per Interval
com.wily.introscope.agent.trace.hc2.ThisErrorReportingTracer
Traces the number of exceptions thrown (caught or uncaught) per interval by tracing the constructor of the specified exception class(es). The error message is based on the return value of the toString() method of the exception object. Recommended for custom exceptions. In order to capture the error message, it must be used with a
WithParameters
Directive, otherwise it will only increment the Errors Per Interval metric.To see error messages, it requires ErrorDetector, otherwise it will only increment the Errors Per Interval metric. Requires Agent to be at 6.0 or later. Blame is implicit.
Default Metric Name:
Errors Per Interval
com.wily.introscope.agent.trace.jdbc.StatementExecuteQueryMethodTimer
Deprecated.
com.wily.introscope.agent.trace.MethodCPUTimer
Reports the average CPU time (in milliseconds) used during method execution. This tracer will factor in every method invocation. This tracer requires a platform monitor on the supported platform (either AIX 5.2 or RedHat Enterprise Linux 3.0).
Default Metric Name: Average CPU Time (ms)
com.wily.introscope.agent.trace.MethodFinishCounterPermanent
  • NormalCompletionMethodTraceDecrementor
    Perpetual counter that decreases by 1 for each method invocation from another object instance that completes without throwing an exception.
  • NormalCompletionMethodTraceIncrementor
    Perpetual counter that increases by 1 for each method invocation from another object instance that completes without throwing an exception.
com.wily.introscope.agent.trace.MethodInvocationCounter
Deprecated.
com.wily.introscope.agent.trace.MethodStartCounter
  • BlamedMethodStartTraceDecrementor
    Perpetual counter that decreases by 1 at the start of a method invocation from another object instance. Blame enabled.
  • BlamedMethodStartTraceIncrementor
    Perpetual counter that increases by 1 at the start of a method invocation from another object instance. Blame enabled.
  • BlamedSimpleStartDecrementor
    Perpetual counter that decreases by 1 at the start of a method invocation, regardless of whether from another object instance or the same object instance. Blame enabled.
  • BlamedSimpleStartIncrementor
    Perpetual counter that increases by 1 at the start of a method invocation, regardless of whether from another object instance or the same object instance. Blame enabled.
  • MethodStartTraceDecrementor
    Perpetual counter that decreases by 1 at the start of a method invocation from another object instance.
  • MethodStartTraceIncrementor
    Perpetual counter that increases by 1 at the start of a method invocation from another object instance.
  • SimpleStartDecrementor
    Perpetual counter that decreases by 1 at the start of a method invocation, regardless of whether from another object instance or the same object instance.
  • SimpleStartIncrementor
    Perpetual counter that increases by 1 at the start of a method invocation, regardless of whether from another object instance or the same object instance.
com.wily.introscope.agent.trace.nano.MethodNanoCPUTimer
Reports the average CPU time (in nanoseconds) used during method execution. This tracer will factor in every method invocation. This tracer provides nanosecond precision, but not necessarily nanosecond accuracy; it relies on the JVM to provide the current value of the most precise available system timer, in nanoseconds. Supported on Java Agents. For more information, see the Support and Compatibility.
Default Metric Name:
Average CPU Time (ns)
com.wily.introscope.agent.trace.nodejs.tracer.NodejsExpressRouteTracer
Provides the five blame point metrics for Express routes that are executed during frontend requests. The metrics appears under the resource: "Express|{route}|{http_method}." The actual route and HTTP method association are replaced by the Express route name formatter on the collector side.
com.wily.introscope.agent.trace.hc2.MongoDBTracer
Generates five separate metrics for each MongoDB Operation find, insert, update or remove. Metrics appear under the Resource "Backends|<MongoDB Instance>|<Operation>."
Default Metric Names:
  • Average Response Time (ms)
  • Concurrent Invocations
  • Errors Per Interval
  • Responses Per Interval
  • Stall Count
com.wily.introscope.agent.trace.nodejs.tracer.ParamsDecoratorBlamePointTracer
Represents a tracer which decorates a given traced component with specific additional parameters and also provides five blame point metrics for it. The additional parameters are fetched from shared storage available in Invocation Data instance based on configured keys.
com.wily.introscope.agent.trace.nodejs.tracer.TransactionTraceParamsDecoratorTracer
Represents a tracer which decorates a given traced component with specific additional parameters. These additional parameters are fetched from shared storage available in Invocation Data instance based on configured keys. This tracer does not create metrics.
com.wily.introscope.agent.trace.OverThresholdPerIntervalCounter
Calculates per interval the number of invocations that completed over the specified time threshold (in milliseconds). This tracer will factor in every method invocation.
com.wily.introscope.agent.trace.ResponseTimer
Deprecated.
com.wily.introscope.agent.trace.ResponseTimerWithPackageName
Deprecated.
com.wily.introscope.agent.trace.SimpleInstanceCounter
Counts the approximate number of Object Instances for a particular class. By default, used by the InstanceCounts Tracer Group.
Default Metric Name:
Approximate Instance Count
com.wily.introscope.agent.trace.StalledMethodTracer
Calculates the number of method invocations currently running that have not completed within the specified threshold (in milliseconds). This tracer will factor in every method invocation. A metric will not be published until a method stalls.
Default Metric Name:
Stalled Method Count
com.wily.introscope.agent.trace.ThresholdMethodTimer
Deprecated.
com.wily.introscope.agent.trace.UnderThresholdPerIntervalCounter
Calculates per interval the number of invocations that completed under the specified time threshold (in milliseconds). This tracer will factor in every method invocation.