---
title: Monitor background processes and other non-web transactions
source: https://docs.newrelic.com/docs/apm/transactions/intro-transactions/monitor-background-processes-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? [#define]

The two main APM [transaction](https://docs.newrelic.com/docs/apm/transactions/intro-transactions/transactions-new-relic-apm) 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 where 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](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction) (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 [#create]

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

**Go**

Follow the procedures for [instrumenting a non-web transaction](https://docs.newrelic.com/docs/agents/go-agent/get-started/instrument-go-transactions#go-txn).

**Java**

Follow the procedures for [instrumenting a transaction](https://docs.newrelic.com/docs/java/monitoring-java-background-processes) (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](https://docs.newrelic.com/docs/agents/net-agent/features/instrumenting-custom-applications) and [Instrumenting WCF applications](/install/dotnet/?deployment=WCF).

> #### ⚠️ IMPORTANT
>
> For IIS applications, you cannot change web transactions to non-web transactions.

**Node.js**

Use [`startBackgroundTransaction()`](https://docs.newrelic.com/docs/agents/nodejs-agent/supported-features/nodejs-custom-instrumentation#background-txn).

**PHP**

To mark a transaction as non-web: use [`newrelic_background_job`](https://docs.newrelic.com/docs/agents/php-agent/php-agent-api/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](https://docs.newrelic.com/docs/agents/python-agent/supported-features/python-background-tasks).

The Python agent also supports non-web transaction reporting from [Celery](https://docs.newrelic.com/docs/agents/python-agent/back-end-services/python-agent-celery) and Gearman.

**Ruby**

See [Ruby agent non-web transactions](https://docs.newrelic.com/docs/agents/ruby-agent/background-jobs/monitor-ruby-background-processes).

## View non-web transactions [#ui]

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 transaction type dropdown:

-   APM: Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > APM & services** > (select an app) > **Summary**.
-   Transactions: Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > APM & Services**. Select an app, then under the **Monitor** section, click **Transactions**.
