Ignore specific transactions

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:

  1. 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 {
    }
  2. Apply the annotation to the methods or classes you want to ignore. For example:

    @NewRelicIgnoreTransaction
    public 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:

  1. 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 {
    }
  2. Apply the annotation to the methods or classes you want to ignore. For example:

    @NewRelicIgnoreApdex
    public 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.

For more help

Join the discussion about Java monitoring in the New Relic Online Technical Community! The Technical Community is a public platform to discuss and troubleshoot your New Relic toolset.

If you need additional help, get support at support.newrelic.com.