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

External services setup

The external services feature is available for New Relic APM agents and OpenTelemetry.

If you want to get up and running as quick as possible, we recommend using our APM agents.

Clicking a logo sends you to New Relic platform where you'll be guided through installing and configuring the agent.

Go agent
Java agent
.NET agent
Node.js agent
PHP agent
Python agent
Ruby agent

Set up external services

The following instructions will guide you through setting up external services.

Start sending data

Setting up external services changes based on whether you are using APM agents or OpenTelemetry. Select the tab for the install option that suits your system:

Complete the following for each service you want to view in external services:

  1. If you haven’t already done so, install the appropriate New Relic APM agent.

  2. Make sure distributed tracing is turned on in the agent:

    • If you installed a new agent, standard distributed tracing is turned on by default. If your service communicates with other services that use Infinite Tracing, see your agent documentation for help with Infinite Tracing.
    • If you have an older agent, follow the configuration steps to enable either standard distributed tracing or Infinite Tracing. When you enable distributed tracing, it overrides the old cross application tracing.
  3. See if your agent requires additional setup steps:


    Minimum Version




    See the documentation about using NewRoundTripper().



    See the documentation about using the Java agent API to instrument external calls.



    The .NET agent and the.NET agent in Azure automatically instrument external calls, but they don’t instrument methods for transactions. To see transactions, you need to use a combination of the following:



    See the documentation about using the Node.js agent API.


    See the documentation about using the PHP agent API to instrument external calls.


    No extra steps are necessary: External calls are instrumented automatically.


    See the documentation about using the Ruby agent API to instrument external calls.


The classic version of external services is still available if you need to add a new service to a chain of agents already using classic external services. To install classic external services, you enable cross application tracing instead of distributed tracing in the steps below.

The New Relic UI shows external services details once you complete the steps for setting up the OpenTelemetry instrumentation for your service and the calls it makes to other services. The external services feature shows calls between your services, broken down by transaction endpoints in each service. The name of each transaction is derived from the entry span for the process (span.kind = "server").

If your APM service is connected to an OpenTelemetry service (upstream or downstream), that OpenTelemetry service will not show up in the view for that APM service. This is because, when viewing an APM service, this feature uses metrics which are only reported by APM agents. When viewing an OpenTelemetry service, the APM service will show up as a connection.

The quality of the information you see depends on the sampling strategy you are using in the collector. See the following section about using sampling to control what you see in the UI.


If you send 100% of your OpenTelemetry data to our Trace API, we store 100% of that data, unless you have a specific rate limit for your organization, or if you send enough data to trigger our default rate limit.

Adjust sampling to see more UI data

If you're using an APM agent and are seeing little or no data when you start drilling beyond the initial page of the map, you may need to adjust the span reservoir to sample more data. This is because transaction-level data is populated by sampled trace data.

For OpenTelemetry, both the initial page and all drill-down pages are populated by sampled data, so you may need to make some adjustments in sampling to get the data you need.

Here is some information about the different routines for adjusting the reservoir for APM agents, as well as tips for adjusting sampling for OpenTelemetry:

All APM agents have a reservoir that stores spans, and most of these agent reservoirs are configurable. The size of this reservoir affects the likelihood that an agent is able to send all the spans that it creates. See fragmented traces for more details.

Data for this feature is derived from adjacent client and server spans where external calls are made from one service to another. When an agent hits its span reservoir limit, there's a chance it will drop some spans representing these calls.

The default agent configuration value of 2000 defines the maximum number of events the agent collects per minute. If there are more spans than this number, the agent collects a statistical sampling, essentially degrading the amount of data that is used in the external services map.

If you’re not seeing the type of detail you want in the UI, you can increase the size of the reservoir up to 10,000. Review the following to adjust the agent reservoirs:

APM agent



The reservoir is not currently configurable


Java configuration


.NET configuration


Node.js configuration


The reservoir is not currently configurable




Ruby configuration


This section only applies if your services are sending data to New Relic via an OpenTelemetry Collector. This is because the data isn’t being sampled in an OpenTelemetry Collector.

For OpenTelemetry, all external services views are populated by sampled traces, which means that you may not see enough useful data. To resolve this, you can change the sampling in the collector to allow more data into New Relic.

See Sampling for tips about configuration.

What's next?

Copyright © 2024 New Relic Inc.

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