Universal API-based SDWAN Monitoring
  • 02 Sep 2025
  • 13 Minutes to read
  • Dark
    Light
  • PDF

Universal API-based SDWAN Monitoring

  • Dark
    Light
  • PDF

Article summary

General Information

If you need to monitor orchestrator-based SDWAN network devices that do not already have explicit support in Netreo, you can create new device types that will communicate with your SDWAN API and allow monitoring of those devices.

Follow the instructions below to create and configure these device types.

Adding New SDWAN Device Types

Initial Steps

Procedure

  1. Log in to Netreo as a user with the SuperAdmin access level.
  2. From the main menu, navigate to Administration >> Change Devices >> Edit Device Types/Subtypes to open the Polling Administration page.
  3. Click on Create Device Types and select Create REST API based Device Type.

Proceed to General Details.

General Details

In this section, you will enter the basic information for your new REST API-based device type. This device type is then assigned to the virtual device that Netreo creates to represent your SDWAN orchestrator after being discovered.

Procedure

  1. In the Type Title field, enter a name for the new device type.
  2. In the Discovery Type field, enter the method of device discovery. (Currently, Orchestrator is the only discovery type available. Enter "Orchestrator" without the quotes.)
  3. In the Polling Interval field, select the desired interval between polling calls to the SDWAN API. (Currently, 5 minutes is the only available polling interval.)
  4. Click Save & Next.

Proceed to Authentication.

Authentication

In this section, you will enter authentication information for your SDWAN API. To add more authentication keys/values, click the plus icon (+).

Procedure

  1. In the Key field, enter the name of the SDWAN key for API authentication (an SDWAN-specific value).
  2. In the Value field, enter the value of the SDWAN key for API authentication. (API-specific value.)
  3. Click Save & Next.

Proceed to Discovery.

Discovery

This section is very complex, but has been broken down into smaller segments to make it easier to configure. Basically, for each class of device in your SDWAN that you want Netreo to discover and monitor (firewall, switch, etc.), you will add and configure a "Discovery" module. These modules consist of a "Device Class" component (in which you configure various settings for accessing that device in your SDWAN) and up to four "Stat Group" components (in which you configure various settings for retrieving the metric data for a specific statistical group from each device of that class).

Currently, Netreo supports the following device classes for monitoring:

  • Orchestrator
  • Firewall
  • Router
  • Switch
  • Access point

Currently, Netreo supports the following statistical groups for monitoring:

  • CPU
  • Interface
  • Latency
  • Memory

Discovery module configuration relies heavily on the JMESPath query language, and you will be expected to know how to extract the required values from the sample JSON payload that Netreo will retrieve from your SDWAN API to aid you in configuration.

Procedure

Each Discovery module is configured as follows:

Device Class (all device class components are configured the same way)

  1. In the URL field, enter the API URL to retrieve the bulk list of devices.
  2. In the Name RegEx field, enter a regular expression to match. Only devices from the list that match this value will be added to Netreo for monitoring. (.* is a wildcard to match all.)
  3. In the Device Class field, select the class for this device. (The Device Class label of the component immediately updates to reflect your selection.)
    1. Click Test Discovery to retrieve the raw JSON payload from the API. This ensures that the URL is working and provides a JSON sample to assist you in determining the remaining configuration values.
  4. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  5. In the UUID (Identifier Path) field, enter the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  6. In the IP Path field, enter the IP path to the edge device. This is used to map the management IP to the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  7. In the Name Path field, enter the name path to the edge device. This is used to map the name to the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  8. In the Key field, enter the JSON value to identify the device type.
  9. In the RegEx field, enter a regular expression to match. This filters for device type values in the key field.
  10. If your API uses a separate URL for retrieving device status, continue to the next step. Otherwise, click + Add Poller to add the first Stat Group poller component (see next section).
    1. In the Device Status URL field, enter the API URL for retrieving device status (if required for your API).
      1. Click Test Device Status to retrieve the raw JSON payload from the API. This ensures that the URL is working and provides a JSON sample to assist you in determining the remaining configuration values.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the UUID (Identifier Path) field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Status Path field, enter the path to the device status. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Status Value Regex field, enter a regular expression to match. This value should be the expected "UP" value for the device status found in the Status Path field.
    6. Click + Add Poller to add the first Stat Group poller component (see next section).

Stat Group: CPU

(Optional) If you do not need to retrieve CPU statistics for this device, skip to the next Stat Group section.

  1. Below the Device Class component, click + Add Poller.
  2. In the Statistical Group field, select CPU.
  3. In the URL field, enter the API URL to bulk retrieve CPU data from all devices.
    1. Click Test Poller to retrieve the raw JSON payload from the API. This ensures that the URL is working and provides a JSON sample to assist you in determining the remaining configuration values.
  4. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  5. In the Value Path field, enter the path to the CPU value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  6. In the ID (Identifier Path) field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  7. In the Unit field, select the appropriate unit of measurement for this metric.
  8. Move on to the next Stat Group component section.

Stat Group: Memory

(Optional) If you do not need to retrieve Memory statistics for this device, skip to the next Stat Group section.

  1. Below the Device Class component, click + Add Poller.
  2. In the Statistical Group field, select Memory.
  3. In the URL field, enter the API URL to bulk retrieve Memory data from all devices.
    1. Click Test Poller to retrieve the raw JSON payload from the API. This ensures that the URL is working and provides a JSON sample to assist you in determining the remaining configuration values.
  4. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  5. In the Value Path field, enter the path to the Memory value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  6. In the ID (Identifier Path) field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  7. In the Unit field, select the appropriate unit of measurement for this metric.
  8. Move on to the next Stat Group component section.

Stat Group: Latency

(Optional) If you do not need to retrieve Latency statistics for this device, skip to the next Stat Group section.

  1. Below the Device Class component, click + Add Poller.
  2. In the Statistical Group field, select Latency.
  3. In the URL field, enter the API URL to bulk retrieve Latency data from all devices.
    1. Click Test Poller to retrieve the raw JSON payload from the API. This ensures that the URL is working and provides a JSON sample to assist you in determining the remaining configuration values.
  4. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  5. In the Value Path field, enter the path to the Latency value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  6. In the ID (Identifier Path) field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  7. In the Unit field, select the appropriate unit of measurement for this metric.
  8. Move on to the next Stat Group component section.

Stat Group: Interface

(Optional) If you do not need to retrieve Interface statistics for this device, skip to the next section.

  1. Below the Device Class component, click + Add Poller.
  2. In the Statistical Group field, select Interface.
  3. In the Basic Interface Information panel:
    1. In the URL field, enter the API URL to bulk retrieve Interface data from all devices.
      1. Click Test Poller to retrieve the raw JSON payload from the API. This ensures that the URL is working and provides a JSON sample to assist you in determining the remaining configuration values.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the ID (Identifier Path) field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface Name Path field, enter the path to the interface names. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
  4. In the Interface Speed panel:
    1. (Optional, if required) In the URL field, enter the API URL to bulk retrieve interface speed data from all devices.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the Identifier Path field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Value Path field, enter the path to the interface speed value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    6. In the Unit field, select the appropriate unit of measurement for this metric.
  5. In the Bandwidth In panel:
    1. (Optional, if required) In the URL field, enter the API URL to bulk retrieve incoming bandwidth data from all devices.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the Identifier Path field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Value Path field, enter the path to the bandwidth-in value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    6. In the Unit field, select the appropriate unit of measurement for this metric.
  6. In the Bandwidth Out panel:
    1. (Optional, if required) In the URL field, enter the API URL to bulk retrieve outgoing bandwidth data from all devices.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the Identifier Path field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Value Path field, enter the path to the bandwidth-out value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    6. In the Unit field, select the appropriate unit of measurement for this metric.
  7. In the Errors In panel:
    1. (Optional, if required) In the URL field, enter the API URL to bulk retrieve incoming error data from all devices.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the Identifier Path field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Value Path field, enter the path to the errors-in value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    6. In the Unit field, select the appropriate unit of measurement for this metric.
  8. In the Errors Out panel:
    1. (Optional, if required) In the URL field, enter the API URL to bulk retrieve outgoing error data from all devices.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the Identifier Path field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Value Path field, enter the path to the errors-out value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    6. In the Unit field, select the appropriate unit of measurement for this metric.
  9. In the Admin Status panel:
    1. (Optional, if required) In the URL field, enter the API URL to bulk retrieve interface administrative status data from all devices.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the Identifier Path field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Value Path field, enter the path to the admin status value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    6. In the RegEx field, enter a regular expression to match. This should be the expected "up" admin status value.
  10. In the Operational Status panel:
    1. (Optional, if required) In the URL field, enter the API URL to bulk retrieve interface operational status data from all devices.
    2. In the Base Path field, enter the base path for subsequent field matches. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    3. In the Identifier Path field, enter the path to the unique identifier for the edge device. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    4. In the Interface ID field, enter the path to the interface IDs. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    5. In the Value Path field, enter the path to the operational status value. (This field requires JMESPath syntax. Use the retrieved JSON payload to assist you.)
    6. In the RegEx field, enter a regular expression to match. This should be the expected "up" operational status value.

After you have finished configuring all the necessary Stat Group components for this Discovery module, you can add additional Discovery modules by clicking + Add Device Discovery in the Discovery module panel. Follow the same procedure to configure each additional Discovery module.

After you have added and configured all required Discovery modules, click Save & Next to move on to the summary section.

Summary

The Summary page shows all of your entered configuration values. If you need to change any of the configuration settings, you can use the Go Back button to step back through the configuration steps and make any necessary changes.

When finished, review the configuration. If everything looks correct, click Submit to create the configured device types and begin discovering and polling the devices in your SDWAN.

After approximately 5 to 10 minutes, you should start seeing discovered devices being added to the Device Management dashboard. Approximately 15 to 20 minutes after a device is added, you should start seeing performance data on its Device Dashboard.


Was this article helpful?