---
title: Network Path Testing
description: Analyze global Network Paths with managed locations and private environments.
breadcrumbs: Docs > Synthetic Testing and Monitoring > Network Path Testing
---

# Network Path Testing

## Overview{% #overview %}

Network Path Testing in Synthetic Monitoring gives you complete visibility into the routes your synthetic tests follow. You can pinpoint where failures happen, whether in applications, on-premises networks, or with ISPs. This accelerates root cause analysis, enables proactive issue detection, and triggers actionable alerts when tests fail. It also provides uptime data to help you measure and communicate the value of your network reliability investments.

Running Network Path tests from managed locations lets you perform TCP, UDP, and ICMP checks on your application. Visualize the Network Path packets follow when executing queries from different global locations and private environments.

{% alert level="info" %}
For information on billing for Network Path Testing in Synthetic Monitoring, see the [pricing page](https://www.datadoghq.com/pricing/?product=synthetic-monitoring#products).
{% /alert %}

## Test creation{% #test-creation %}

**Note**: This page covers running Network Path tests in Synthetic Monitoring, including Agent-based configuration. For scheduled and dynamic tests in Network Monitoring, see the [Network Path Setup](https://docs.datadoghq.com/network_monitoring/network_path/setup.md) documentation. See understanding Network Path tests for more information.

1. In Datadog, hover over **Digital Experience** in the left-hand menu and select Tests (under Synthetic Monitoring & Testing).
1. Click **New Test > Network Path Test**.

{% image
   source="https://docs.dd-static.net/images/synthetics/network_tests/network_path_test.500f376113f553fd86f2c318d5edef63.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/network_tests/network_path_test.500f376113f553fd86f2c318d5edef63.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Network Path test creation from New Synthetics Test" /%}

## Test configuration{% #test-configuration %}

1. Choose your **request type** (TCP, UDP, or ICMP) and specify the host or URL to query. Port information is optional for UDP and ICMP tests.
1. Name your test.
1. Optional: Configure advanced options:
   1. **Source service**: The label displayed for the source host in the Network Path visualization.
   1. **Destination service**: The label displayed for the destination host in the Network Path visualization.
   1. **Max TTL (Time-to-live: The maximum number of network hops a packet can traverse before being discarded)**: Maximum time-to-live (maximum number of hops) for outgoing probe packets. Defaults to 30 hops.
   1. **E2E Queries**: Number of packets sent to the destination to measure packet loss (The percentage of data packets that fail to reach their destination), latency, and jitter (The variation in latency between consecutive packets). Defaults to 50.
   1. **Traceroute (The mechanism that Network Path uses to determine intermediate hops and latency) Queries**: Number of traceroute path tracings to perform. Results are aggregated in each test run details panel. Defaults to 3.
   1. **TCP traceroute strategy** (TCP tests only): Choose between Selective Acknowledgement (SACK) (A TCP option that allows receivers to acknowledge non-contiguous data blocks, improving retransmission efficiency) and Synchronize (SYN) traceroute strategies. SACK and Force SACK more closely mimic modern application traffic.
1. Optional: Add **Tags** to your test, including environment tags. Use tags to filter your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page](https://app.datadoghq.com/synthetics/tests).

{% image
   source="https://docs.dd-static.net/images/synthetics/network_tests/new_network_path_test.ab16d443a0af7c410a76279f412042ac.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/network_tests/new_network_path_test.ab16d443a0af7c410a76279f412042ac.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Network Path test creation form with Advanced options displayed." /%}

Define **assertions** to determine the expected results for your test. At least one assertion is required.

{% image
   source="https://docs.dd-static.net/images/synthetics/network_tests/network_path_assertions.dd2b0584f80d96518ceb01d8ee22aa15.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/network_tests/network_path_assertions.dd2b0584f80d96518ceb01d8ee22aa15.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Network Path test creation form with assertions drop down." /%}

| Type                                                                                                                                 | Operator 1                 | Operator 2                 | Value type |
| ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------- | -------------------------- | ---------- |
| latency                                                                                                                              | avg, max, min              | `is`, `<`, `<=`, `>`, `>=` | int        |
| packet loss                                                                                                                          | `is`, `<`, `<=`, `>`, `>=` | int (0 to 100)             |
| jitter                                                                                                                               | `is`, `<`, `<=`, `>`, `>=` | float                      |
| network hops (The number of intermediate network devices (routers, switches) a packet passes through between source and destination) | avg, max, min              | `is`, `<`, `<=`, `>`, `>=` | int        |

Select the **locations** from which to run your test. You can run Network Path tests from managed locations to test public endpoints, or from a Datadog Agent to test private environments.

Datadog's out-of-the-box managed locations allow you to test public-facing websites and endpoints from regions where your customers are located.

**AWS**:

| Americas            | Asia Pacific | EMEA      |
| ------------------- | ------------ | --------- |
| Canada Central      | Hong Kong    | Bahrain   |
| Northern California | Jakarta      | Cape Town |
| Northern Virginia   | Mumbai       | Frankfurt |
| Ohio                | Osaka        | Ireland   |
| Oregon              | Seoul        | London    |
| São Paulo           | Singapore    | Milan     |
| Sydney              | Paris        |
| Tokyo               | Stockholm    |

**GCP**:

| Americas    | Asia Pacific | EMEA      |
| ----------- | ------------ | --------- |
| Dallas      | Tokyo        | Frankfurt |
| Los Angeles |
| Oregon      |
| Virginia    |

The Datadog for Government site (US1-FED) uses the following managed location:

| Region   | Location |
| -------- | -------- |
| Americas | US-West  |

{% alert level="info" %}
Azure region is not supported for Network Path tests.
{% /alert %}

Set the **test frequency** to determine how often Datadog runs your Network Path test. Scheduled tests ensure your most important endpoints remain accessible to your users.

[Define alert conditions](https://docs.datadoghq.com/synthetics/network_path_tests.md#define-alert-conditions) and [configure the test monitor](https://docs.datadoghq.com/synthetics/network_path_tests.md#configure-the-test-monitor) for your Network Path test.

### Define alert conditions{% #define-alert-conditions %}

Set alert conditions to determine the circumstances under which you want a test to fail and trigger an alert.

#### Alerting rule{% #alerting-rule %}

When you set the alert conditions to: `An alert is triggered if any assertion fails for X minutes from any n of N locations`, an alert is triggered only if these two conditions are true:

- At least one location was in failure (at least one assertion failed) during the last *X* minutes;
- At one moment during the last *X* minutes, at least *n* locations were in failure.

{% alert level="info" %}
For more information on how Synthetic Monitoring notifications evaluate test results and trigger alerts, see [Understanding Synthetic Monitor Alerting](https://docs.datadoghq.com/synthetics/guide/how-synthetics-monitors-trigger-alerts.md).
{% /alert %}

### Configure the test monitor{% #configure-the-test-monitor %}

A notification is sent by your test based on the alerting conditions previously defined. Use this section to define how and what to message your team.

1. [Similar to how you configure monitors](https://docs.datadoghq.com/monitors/notify.md?tab=is_alert#configure-notifications-and-automations), select **users and/or services** that should receive notifications either by adding an `@notification` to the message or by searching for team members and connected integrations with the dropdown menu.

1. Enter the notification **message** for your test or use pre-filled monitor messages. This field allows standard [Markdown formatting](https://docs.datadoghq.com/synthetics/guide/how-synthetics-monitors-trigger-alerts.md) and supports the following [conditional variables](https://docs.datadoghq.com/monitors/notify/variables.md?tab=is_alert#conditional-variables):

| Conditional Variable | Description                                          |
| -------------------- | ---------------------------------------------------- |
| `{{#is_alert}}`      | Show when the test alerts.                           |
| `{{^is_alert}}`      | Show unless the test alerts.                         |
| `{{#is_recovery}}`   | Show when the test recovers from alert.              |
| `{{^is_recovery}}`   | Show unless the test recovers from alert.            |
| `{{#is_renotify}}`   | Show when the monitor renotifies.                    |
| `{{^is_renotify}}`   | Show unless the monitor renotifies.                  |
| `{{#is_priority}}`   | Show when the monitor matches priority (P1 to P5).   |
| `{{^is_priority}}`   | Show unless the monitor matches priority (P1 to P5). |

Notification messages include the **message** defined in this section and information about the failing locations. Pre-filled monitor messages are included in the message body section:

Specify how often you want your test to **re-send the notification message** in case of test failure. To prevent renotification on failing tests, check the option `Stop re-notifying on X occurrences`.

Click **Save Test** to save your Network Path test configuration and monitor.

For more information, see [Synthetic Monitoring notifications](https://docs.datadoghq.com/synthetics/notifications.md).

## Agent configuration{% #agent-configuration %}

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com



{% alert level="warning" %}
Network Path testing with the Datadog Agent is not supported for this [Datadog site](https://docs.datadoghq.com/getting_started/site.md) ().
{% /alert %}


{% /callout %}

### Prerequisites{% #prerequisites %}

Requires [Agent version](https://docs.datadoghq.com/network_monitoring/network_path/setup.md) `7.72` or higher.

### Setup{% #setup %}

1. Enable the system-probe traceroute module in **/etc/datadog-agent/system-probe.yaml** by adding the following:

   ```yaml
   traceroute:
     enabled: true
   ```

1. Enable the Agent Synthetics Collector in **/etc/datadog-agent/datadog.yaml** by adding the following:

   ```yaml
   synthetics:
     collector:
       enabled: true
   ```

1. Ensure the API key used for the Datadog Agent has [Remote Configuration](https://docs.datadoghq.com/remote_configuration.md#enable-remote-configuration) enabled. All newly created API keys have Remote Configuration enabled by default.

1. [Restart the Agent](https://docs.datadoghq.com/agent/configuration/agent-commands.md#restart-the-agent) for it to appear in the list of available test locations.

   ```shell
   sudo systemctl restart datadog-agent
   ```

   {% image
      source="https://docs.dd-static.net/images/synthetics/network_tests/network_path_test_agent.c2bcb0dde6cf264a1f9cbc78568dcd94.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/network_tests/network_path_test_agent.c2bcb0dde6cf264a1f9cbc78568dcd94.png?auto=format&fit=max&w=850&dpr=2 2x"
      alt="Network Path Testing Location and Agents form, showing the Datadog Agent selection dropdown" /%}

**Note**: Network Path tests cannot be run directly from private locations. However, you can run them from any host or device where the Datadog Agent is installed, including hosts that also act as private locations for Synthetic Monitoring tests.

To test network conditions inside private environments, install the Datadog Agent on the host or device, and run Network Path tests from that Agent. For full end-to-end visibility, you can group the application tests running from private locations, and Network Path tests running from the Datadog Agent on the *same host*, into a single [test suite](https://docs.datadoghq.com/synthetics/test_suites.md). This provides a unified view of your service, feature, and application health across all layers affecting user experience.

## View test results{% #view-test-results %}

Click on a Network Path test on the [Synthetic Tests page](https://app.datadoghq.com/synthetics/tests) to view the Test Details page, which displays comprehensive information about your test:

- Test properties and configuration
- Test history
- Individual test runs
- Aggregated Network Path visualizations across all test runs

The Network Path visualization shows the routes packets take to complete queries during each test run. Drag the [health bar](https://docs.datadoghq.com/network_monitoring/network_path/path_view.md#health-bar) handles to adjust the time frame and view a snapshot of end-to-end latency and packet loss for a specific time interval. For more information about how Network Path visualizations are built, see the [Network Path documentation](https://docs.datadoghq.com/network_monitoring/network_path/path_view.md).

{% alert level="info" %}
Changing the health bar does not affect the global time range at the top of the page.
{% /alert %}

{% image
   source="https://docs.dd-static.net/images/synthetics/network_tests/synthetics_network_path_hops.97d39bac5d7c76d2dbeea5d465439644.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/network_tests/synthetics_network_path_hops.97d39bac5d7c76d2dbeea5d465439644.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Network Path visualization section of a network path test." /%}

Click on a test run in the table at the bottom of the page to view details for that specific run. The side panel displays:

- Run information

- Network Path visualization, aggregated across all traceroute queries (based on your tests advanced options)

- Assertion results, aggregated across all end-to-end queries (based on your tests advanced options)

  {% image
     source="https://docs.dd-static.net/images/synthetics/network_tests/network_path_synthetics.9c729020ea275682f5105f15f1c1764d.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/network_tests/network_path_synthetics.9c729020ea275682f5105f15f1c1764d.png?auto=format&fit=max&w=850&dpr=2 2x"
     alt="A single test run from a network test, displaying the side panel" /%}

## Retention{% #retention %}

{% alert level="info" %}
Network Path Testing data is retained for 30 days.
{% /alert %}

## Understanding Network Path tests{% #understanding-network-path-tests %}

Network Path tests use the same underlying functionality in both [Network Path](https://docs.datadoghq.com/network_monitoring/network_path/setup.md) and Synthetic Monitoring, so tests created in one UI are visible in the other.

**Capabilities**:

- **Unified test creation**: You can create Network Path tests from either the Network Path UI or the Synthetic Monitoring UI. Both entry points use the same underlying functionality.
- **UI-based test creation**: You can create Network Path tests directly from the Synthetic Monitoring UI with additional assertions on network data such as packet loss, latency, jitter, and number of hops.
- **Proactive monitoring**: Group browser, API, and Network Path tests in [test suites](https://docs.datadoghq.com/synthetics/test_suites.md) to monitor how network performance impacts application performance.

## Further Reading{% #further-reading %}

- [Learn more about Network Path](https://docs.datadoghq.com/network_monitoring/network_path.md)
- [Identify slowdowns across your entire network with Datadog Network Path](https://www.datadoghq.com/blog/network-path/)
- [Understand user experience through network performance with Datadog Synthetic Monitoring](https://www.datadoghq.com/blog/synthetic-monitoring-network-path/)
- [Network Path terms and concepts](https://docs.datadoghq.com/synthetics/network_path_tests/glossary.md)
