New Relic for Java gives you multiple methods to ignore specific transactions. This document explains how to use the Java agent API annotations and ServletRequest
to ignore transactions.
It is also possible to use the ignoreTransaction()
API call and XML instrumentation files to ignore transactions.
重要
Ignoring transactions involves changing your application's source code and recompiling your application in all cases unless you use an XML instrumentation file. If you cannot manipulate your code, use XML to ignore transactions.
Ignore web transactions with ServletRequest
To ignore a web transaction, set a ServletRequest
attribute named com.newrelic.agent.IGNORE
to true
during the request:
request.setAttribute("com.newrelic.agent.IGNORE", true);
To specify URLs to ignore, create a servlet filter which sets that attribute and apply the filter to the servlet you want to ignore. The filter will have access to the request URI if you need to ignore specific URLs.
Ignore transactions with annotation
To tell the Java agent to ignore transactions using annotations:
Define an annotation called
NewRelicIgnoreTransaction
in your application's code or a library you can integrate with your application:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface NewRelicIgnoreTransaction {}Apply the annotation to the methods or classes you want to ignore. For example:
@NewRelicIgnoreTransactionpublic void methodToBeIgnored() {}
If a transaction calls a method or class annotated with @NewRelicIgnoreTransaction
, the transaction is ignored. This means it does not contribute to the overall Apdex score; and the transaction trace and performance data is not reported.
Ignore apdex but not traces
You can also prevent the transaction from contributing to the Apdex score but still be used in transaction. This can prevent one particularly lengthy transaction from skewing your Apdex score. To prevent a transaction from contributing to your Apdex score:
Define an annotation called
NewRelicIgnoreApdex
in your application's code or a library you can integrate with your application:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface NewRelicIgnoreApdex {}Apply the annotation to the methods or classes you want to ignore. For example:
@NewRelicIgnoreApdexpublic void ignoreApdexOfThisMethod() {}
If a transaction calls a method or class annotated with @NewRelicIgnoreApdex
, the transaction is reported, but does not contribute to the overall Apdex score.