Try it free

Replace custom-device targets in network monitors

  • Latest Dynatrace
  • How-to guide
  • 6-min read

Upgrade network availability monitors

What changes

Network availability monitors that use a custom-device expression in targetFilter must be updated to use supported IP addresses or hostnames in targetList.

Replacing a dynamic custom-device filter with a static target list changes how the monitor is maintained: new or changed devices are not added automatically. Assign an owner to keep the target list current.

Identify affected monitors

Go to Synthetic Synthetic. Filter the monitor list by type Network availability. Open each monitor and check whether its targets are defined by a custom-device filter.

List network availability monitors with recent executions associated with CUSTOM_DEVICE targets:

timeseries count(dt.synthetic.multi_protocol.executions),
by: {dt.synthetic.monitored_entity_ids, dt.entity.multiprotocol_monitor, dt.synthetic.monitor.name}
| expand dt.synthetic.monitored_entity_ids
| filter contains(dt.synthetic.monitored_entity_ids, "CUSTOM_DEVICE")
| fields dt.synthetic.monitor.name, dt.entity.multiprotocol_monitor

This query uses execution data from the selected timeframe. It might not include monitors that are disabled or run infrequently.

List all network availability monitors:

GET /api/v2/synthetic/monitors?type=MULTI_PROTOCOL

Retrieve the definition of each monitor and check for a targetFilter that refers to a custom device:

GET /api/v2/synthetic/monitors/{monitorId}

List network availability monitors with recent executions associated with CUSTOM_DEVICE targets:

dtctl query 'timeseries count(dt.synthetic.multi_protocol.executions), by: {dt.synthetic.monitored_entity_ids, dt.entity.multiprotocol_monitor, dt.synthetic.monitor.name} | expand dt.synthetic.monitored_entity_ids | filter contains(dt.synthetic.monitored_entity_ids, "CUSTOM_DEVICE") | fields dt.synthetic.monitor.name, dt.entity.multiprotocol_monitor' -o json --plain

Like the DQL query, this uses execution data from the selected timeframe and might not include disabled or infrequently executed monitors.

The current monitor definition, not the execution query, determines whether the monitor must be updated. Before making changes, export the complete monitor definition so you can refer to the original target configuration later.

Resolve IP addresses for each custom device

For each referenced custom-device entity ID, retrieve its IP address through the Environment API:

GET /api/v2/entities/{customDeviceEntityId}?fields=properties.ipAddress

Record the required IP addresses before modifying the monitor. If the custom device has multiple addresses, confirm which addresses the monitor is expected to test. If the intended target can't be determined unambiguously, ask the monitor owner to confirm it before continuing.

Update monitor targets

Replace the unsupported custom-device expression in targetFilter with explicit IP addresses or hostnames in targetList. Change only the affected target definition and preserve the monitor's locations, frequency, request settings, constraints, tags, and outage handling.

Before (targets defined by a custom-device filter).

{
"steps": [
{
"name": "ICMP check",
"requestType": "ICMP",
"targetFilter": "entityId == CUSTOM_DEVICE-XXXXXXXXXXXXXXXX",
"targetList": [],
"requestConfigurations": [...]
}
]
}

After (targets defined by an explicit IP address).

{
"steps": [
{
"name": "ICMP check",
"requestType": "ICMP",
"targetFilter": "",
"targetList": ["192.0.2.1"],
"requestConfigurations": [...]
}
]
}

Send the complete updated monitor definition to:

PUT /api/v2/synthetic/monitors/{monitorId}

After the update, retrieve the monitor definition again and confirm that the intended configuration was stored.

For API details, see Update a network availability monitor.

Verify the upgrade

For every updated monitor, confirm that:

  • The unsupported custom-device targetFilter is no longer present.
  • The configured IP addresses or hostnames match the intended targets.
  • Executions succeed from every assigned location.
  • Dashboards, alerts, SLOs, maintenance windows, and automation continue to work.
  • An owner is assigned to maintain each static target list.

Related topics

  • Upgrade Synthetic Monitoring
  • Create a NAM monitor
  • Synthetic API v2
Related tags
Digital Experience