Monitor background processes and other non-web transactions

This document explains what non-web transactions are in APM, and how you can instrument background tasks and other arbitrary activity to be reported as non-web transactions.

What are non-web transactions?

The two main New Relic APM transaction categories are web and non-web.

  • Web transactions are transactions we detect as being initiated by a web request; they are the most common type of transaction reported by APM.
  • Non-web transactions are transactions that are not web transactions; we do not detect they were initiated by a web request. This includes processes and jobs that do not handle web requests, such as message processing and background tasks.

For example, you might schedule something to run periodically on your server to do database work, send emails, etc. The source is not a web request but something on your server.

Some non-web transactions from supported frameworks or services are detected automatically by New Relic; others may be created using custom instrumentation. We intentionally separate your web and non-web transactions in the UI.

Non-web vs. web transactions Comments
Less directly important Non-web transactions are often background processes and tasks, and they are less directly important to your application's users when compared to web transactions.
Long running Non-web transactions are often long-running processes. Separating them from web transactions prevents those results from skewing your customer-facing response times.
Omitted from Apdex score Combining your non-web transactions with your web transactions would hurt your Apdex score (a measure of satisfaction with load times). This is why Apdex data for non-web transactions does not appear in the UI.

Create non-web transactions

To create new non-web transactions, follow the procedures for your APM language agent.

C SDK

Follow the procedures for instrumenting a non-web transaction.

Go

Follow the procedures for instrumenting a non-web transaction.

Java

Follow the procedures for instrumenting a transaction (instrumenting a transaction without web request parameters creates a non-web transaction).

.NET

By default, the APM .NET agent instruments IIS ASP workers. To instrument other (non-IIS) .NET applications, such as standalone (WCF) services, console apps, and other Windows services, see Instrumenting custom applications and Instrumenting WCF applications.

For IIS applications, you cannot change web transactions to non-web transactions.

Node.js

Use startBackgroundTransaction().

PHP

To mark a transaction as non-web: use newrelic_background_job and set the flag to true.

The PHP agent reports all command-line run scripts as non-web transactions.

Python

See Python agent non-web transactions.

The Python agent also supports non-web transaction reporting from Celery and Gearman.

Ruby

See Ruby agent non-web transactions.

View non-web transactions

To view non-web transaction data in the New Relic UI, go to the main chart on the following pages, and then select the Non-web option in the dropdown:

For more help

If you need more help, check out these support and learning resources: