• EnglishEspañol日本語한국어Português
  • Log inStart now

Java agent error configuration

APM's Java agent reports detailed information about errors that occur within your application. This gives you insight into problematic areas that may be affecting your application’s performance or the end user’s experience.

With Java agent versions 3.40.0 or higher, there are several configuration options that let you control how errors are reported, including:

  • Configuring expected errors so that they won't affect error rate or Apdex
  • Ignoring errors
  • Reporting errors that are not reported automatically

For more information on viewing your error data, see Error analytics. For an overview of error data in all agents, see Manage errors in APM.

Common reported error examples

The Java agent reports errors in the following scenarios:

Error reporting

Comments

Unhandled errors (includes stack trace)

If an unhandled error occurs within a transaction that the Java agent was tracing, the error will be reported with the full stack trace.

HTTP status codes (no stack trace)

If a transaction results in an HTTP status code, the error will be reported without the stack trace. This is because:

  • The application server detected an error condition and explicitly set the status code.

    OR

  • The error condition was detected by program logic, and thus there was no exception object or stack.

    In order to include the stack trace with these types of transactions, you must use a noticeError(...) API call.

noticeError(...) API calls

If the Java agent makes an explicit call using the noticeError(...) API call, the error will be reported regardless of whether or not it occurs within a transaction. The reported information depends on the parameters used in the noticeError(...) API call, as described in the Javadocs.

Unscoped errors reporting over 100%

The Java agent can report unscoped errors, which are errors that are not tied to any transaction. Because of this, it is possible to have one transaction in a timeslice and multiple errors in the same timeslice. In this situation, New Relic would then show an error rate over 100%.

Configure error reporting

Important

In order to use this feature, upgrade to the latest release (Java agent 3.40.0 or higher).

The Java agent provides several flexible configuration options to control how errors are reported.

Config options

Details

Configure errors via the UI.

You can ignore errors or mark them as expected via server-side config.

Configure as expected errors via newrelic.yml.

Errors reported by these versions of noticeError can be configured as expected errors in the newrelic.yml. Calls to this API will be overridden if the error is configured as ignored in newrelic.yml. For details, see Error configuration precedence.

Use these noticeError() API calls to report errors that are not reported automatically and configure them as expected errors in newrelic.yml:

  • noticeError(Throwable throwable)

Override expected errors via newrelic.yml.

Errors reported by these versions of noticeError will override the newrelic.yml expected error configuration. Calls to this API will be overridden if the error is configured as ignored in the yml. For details, see Error configuration precedence.

Use these noticeError(...) API calls to report errors that are not reported automatically and configure them as expected errors with the API (overrides yml expected error configuration):

Ignore or expect errors via config file.

In versions 3.40.0 or higher, you can control how errors are reported by using the YAML-based configuration. This allows you to ignore errors or expect errors based on HTTP status codes or based on a list of exception class names plus an optional error message.

  • Ignoring errors prevents the specified exception classes or codes from being reported to at all.

  • Expecting errors prevents the specified exception classes or codes from affecting your application's error rate and Apdex score. This allows you to retain the error information for troubleshooting purposes while avoiding alerts based on error rate or Apdex score.

    These settings are dynamic, so running agents will notice changes to newrelic.yml without a JVM restart. For more information and examples, see the Java agent config file.

YAML-based configuration for error collection

YAML-based configuration for error collection allows you to entirely ignore specific errors or exempt expected errors from affecting your application’s error rate and Apdex score. You can mark errors as ignored or expected based on the following criteria:

  • A given range of HTTP status codes, presented as a comma-separated list or dashed range
  • A comma-separated list using the fully qualified name of a package/class and an optionally provided error message string

Error configuration precedence

The priority for errors configuration is:

  1. Server-side configuration (overlays values onto YAML file)
  2. ignore_* config in the YAML
  3. expected parameter in the noticeError(..) API call
  4. expected_* config in the YAML

Here are examples of the results when combining various API calls and YAML configurations.

Examine logs for error details

You can bring your logs and application's data together to make troubleshooting easier and faster. With logs in context, you can see log messages related to your errors and traces directly in your app's UI.

  1. From the Errors page, click on a trace to go to the Error details page.
  2. From the error details page, click See logs.
  3. To view details related to an individual log message, click directly on the message.

Configure ignored and expected errors via UI

To configure expected errors via the APM UI:

  1. If it is not already enabled, enable server-side configuration.
  2. Go to the server-side configuration menu for the application with errors you want to mark as expected.
  3. Under Error collection, for either Ignore or Exclude expected errors, enter the HTTP code or the error class for errors you want to configure.
  4. Select Save.

For information on how to view expected errors in the UI, see View expected errors.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.