Try it free

Network metrics

  • Latest Dynatrace
  • How-to guide
  • Published Jul 07, 2026

Dynatrace's network extensions follow a unified metric model for shaping their data. Using the same model, any integration can benefit of a common layer of understanding and correlation in the Dynatrace platform.

While this model is not enforced, shaping your signals according to it allows you to populate the Smartscape and benefit from common visualizations, health alerts, and warning signals in Infrastructure & Operations Infrastructure & Operations.

What will you learn?

This guide covers reference documentation of fields and metrics as they relate to Dynatrace's Network model. An example is given based on the SNMP datasource along with an example OpenPipeline pipeline. Read along to learn:

  • How to adapt any network integration to the model
  • How the metrics and their fields relate to Smartscape nodes
  • What are the expected benefits from following these guidelines

The network metric model

Device metrics

All device-level metric keys follow the prefix com.dynatrace.extension.network_device and several alternatives are provided to support the different formats network devices may present this data in.

TitleKeyDescriptionTypeUnitFields

System uptime

com.dynatrace.extension.network_device.sysuptime

The time, in system ticks (1/100 second), since the last system reboot. This metric can also be used to carry all fields required to generate a Smartscape event for the network device node.

gauge

Centisecond (cs)

sys.name; chassis.mac; device.address; monitoring.mode; device.type; sys.description; device.port; lldp.chassis.id; cdp.device.id

CPU usage

com.dynatrace.extension.network_device.cpu_usage

The system's CPU usage expressed as a percentage

gauge

Percent (%)

sys.name; device.address; chassis.mac

CPU usage ratio

com.dynatrace.extension.network_device.cpu_ratio

The system's CPU usage expressed as a ratio between 0 and 1

gauge

Ratio (ratio)

sys.name; device.address; chassis.mac

Used memory

com.dynatrace.extension.network_device.memory_used

The amount of memory, in kilobytes, used by the device

gauge

Kilobyte (kB)

sys.name; device.address; chassis.mac

Free memory

com.dynatrace.extension.network_device.memory_free

The amount of memory, in kilobytes, currently free on the device

gauge

Kilobyte (kB)

sys.name; device.address; chassis.mac

Total memory

com.dynatrace.extension.network_device.memory_total

The total (used and free) amount of memory, in kilobytes, available on the device

gauge

Kilobyte (kB)

sys.name; device.address; chassis.mac

Memory usage

com.dynatrace.extension.network_device.memory_usage

The current memory used by the device, expressed as a percentage of total memory

gauge

Percent (%)

sys.name; device.address; chassis.mac

Interface metrics

All interface-level metric keys follow the prefix com.dynatrace.extension.network_device.if.

TitleKeyDescriptionTypeUnitFields

Interface status

com.dynatrace.extension.network_device.if.status

A state metric representing a network interface, whose value is always 1 and its dimensions indicate its state details. This metric can also be used to carry all fields required to generate a Smartscape event for the network interface node.

gauge

State (state)

sys.name; device.address; chassis.mac; oper.status; admin.status; if.speed; mac.address; if.name; if.descr; if.alias

Traffic in

com.dynatrace.extension.network_device.if.bytes_in.count

The volume of traffic, in bytes, inbound to the network interface.

count

Byte (B)

sys.name; device.address; chassis.mac; if.name

Traffic out

com.dynatrace.extension.network_device.if.bytes_out.count

The volume of traffic, in bytes, outbound from the network interface

count

Byte (B)

sys.name; device.address; chassis.mac; if.name

Errors in

com.dynatrace.extension.network_device.if.in.errors.count

The number of errors, inbound to the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Errors out

com.dynatrace.extension.network_device.if.out.errors.count

The number of errors, outbound from the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Discards in

com.dynatrace.extension.network_device.if.in.discards.count

The number of discarded packets, inbound to the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Discards out

com.dynatrace.extension.network_device.if.out.discards.count

The number of discarded packets, outbound from the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

CRC errors in

com.dynatrace.extension.network_device.if.in.crc_errors.count

The number of packets with cyclic redundancy checksum (CRC) errors, inbound to the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Broadcast packets in

com.dynatrace.extension.network_device.if.in.broadcast_pkts.count

The number of broadcast packets, inbound to the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Broadcast packets out

com.dynatrace.extension.network_device.if.out.broadcast_pkts.count

The number of broadcast packets, outbound from the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Multicast packets in

com.dynatrace.extension.network_device.if.in.multicast_pkts.count

The number of multicast packets, inbound to the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Multicast packets out

com.dynatrace.extension.network_device.if.out.multicast_pkts.count

The number of multicast packets, outbound from the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Unicast packets in

com.dynatrace.extension.network_device.if.in.ucast_pkts.count

The number of unicast packets, inbound to the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Unicast packets out

com.dynatrace.extension.network_device.if.out.ucast_pkts.count

The number of unicast packets, outbound from the network interface.

count

Count

sys.name; device.address; chassis.mac; if.name

Field definitions

Device fields

Fields that are found on network extension metrics relating to a network device.

Device-identifying fields like chassis.mac, sys.name, and device.address are also included with interface metrics to support static edge creation in Smartscape processors.

AttributeTypeDescriptionExamples

chassis.mac

string

The MAC address of the device chassis; defined as the first non-empty MAC address of the device hosting the interface.

00:1A:2B:3C:4D:5E

device.address

string

The device's IP address used to collect the metric

10.0.0.1

device.port

long

The connection port number on the device

22; 161

device.type

string

A string to represent the broader make, model, or family of network device

f5-big-ip; dell-powerconnect; cisco-nexus; infoblox-ipam

monitoring.mode

string

The type of monitoring data available for this network device. On metric fields, this should always be set to Extension.

Extension

sys.description

string

A description of the device (system) this metric is related to.

Cisco IOS Software, C2960X Software (C2960X-UNIVERSALK9-M)

sys.name

string

The device (system) name

myDevice1; some-router-2

lldp.chassis.id

string

The LLDP Chassis ID of the network device

00:1A:2B:3C:4D:5E; device.example.com; XTU123P4

cdp.device.id

string

The CDP Device ID of this network device

00:1A:2B:3C:4D:5E; device.example.com; XTU123P4

Interface fields

Fields that are found on network extension metrics relating to a network interface.

AttributeTypeDescriptionExamples

admin.status

string

The admin status of the interface

up; down; testing

if.type

string

The type of network interface. If possible, should use the standard types defined by IANA.

ethernetCsmacd; propVirtual; l2vlan; tunnel

if.alias

string

An alias of the interface as reported by the network device

Uplink to Core Switch; Vlan1

if.descr

string

A description of the interface as reported by the network device

GigabitEthernet1/0/1; Ethernet0

if.name

string

The name of the interface as reported by the network device

Gi1/0/1; eth0

if.speed

string

The speed of the interface in bits per second

1000000000; 10000000000

mac.address

string

A MAC address that can be used to identify this interface

4C:03:4F:5B:E8:89

oper.status

string

The operational status of the interface

up; down; testing

Creating an SNMP Extension

Because all of the above details are standard information available with SNMP, we can easily create an extension that shapes its metrics according to this model to use it as an example.

See the full file
name: custom:some.cisco.extension
version: 1.0.0
minDynatraceVersion: 1.333.0
author:
name: Dynatrace
snmp:
- group: Network
dimensions:
- key: sys.name
value: oid:1.3.6.1.2.1.1.5.0
- key: chassis.mac
value: this:device.chassis_mac
subgroups:
- name: Device metrics
interval:
minutes: 1
dimensions:
- key: device.type
value: const:some-cisco-model
- key: monitoring.mode
value: const:Extension
- key: device.port
value: this:device.port
- key: sys.description
value: oid:1.3.6.1.2.1.1.1.0
- key: lldp.chassis.id
value: $networkFormat(oid:1.0.8802.1.1.2.1.3.1.0, oid:1.0.8802.1.1.2.1.3.2.0)
- key: cdp.device.id
value: oid:1.3.6.1.4.1.9.9.23.1.3.4.0
metrics:
- key: com.dynatrace.extension.network_device.sysuptime
value: oid:1.3.6.1.2.1.1.3.0
- key: com.dynatrace.extension.network_device.cpu_usage
value: oid:1.3.6.1.4.1.9.9.109.1.1.1.1.7
type: gauge
- key: com.dynatrace.extension.network_device.memory_free
value: oid:1.3.6.1.4.1.9.9.109.1.1.1.1.17
type: gauge
- key: com.dynatrace.extension.network_device.memory_used
value: oid:1.3.6.1.4.1.9.9.109.1.1.1.1.19
type: gauge
- name: Interface metrics
interval:
minutes: 1
table: true
dimensions:
- key: if.name
value: oid:1.3.6.1.2.1.31.1.1.1.1
- key: if.descr
value: oid:1.3.6.1.2.1.2.2.1.2
- key: if.type
value: oid:1.3.6.1.2.1.2.2.1.3
- key: if.alias
value: oid:1.3.6.1.2.1.31.1.1.1.18
- key: mac.address
value: oid:1.3.6.1.2.1.2.2.1.6
- key: if.speed
value: oid:1.3.6.1.2.1.31.1.1.1.15
- key: admin.status
value: oid:1.3.6.1.2.1.2.2.1.7
- key: oper.status
value: oid:1.3.6.1.2.1.2.2.1.8
metrics:
- key: com.dynatrace.extension.network_device.if.status
value: const:1
type: gauge
- key: com.dynatrace.extension.network_device.if.bytes_in.count
value: oid:1.3.6.1.2.1.31.1.1.1.6
type: count
- key: com.dynatrace.extension.network_device.if.bytes_out.count
value: oid:1.3.6.1.2.1.31.1.1.1.10
type: count
- key: com.dynatrace.extension.network_device.if.in.errors.count
value: oid:1.3.6.1.2.1.2.2.1.14
type: count
- key: com.dynatrace.extension.network_device.if.in.discards.count
value: oid:1.3.6.1.2.1.2.2.1.13
type: count
- key: com.dynatrace.extension.network_device.if.out.errors.count
value: oid:1.3.6.1.2.1.2.2.1.20
type: count
- key: com.dynatrace.extension.network_device.if.out.discards.count
value: oid:1.3.6.1.2.1.2.2.1.19
type: count
- key: com.dynatrace.extension.network_device.if.in.multicast_pkts.count
value: oid:1.3.6.1.2.1.31.1.1.1.8
type: count
- key: com.dynatrace.extension.network_device.if.out.multicast_pkts.count
value: oid:1.3.6.1.2.1.31.1.1.1.12
type: count
- key: com.dynatrace.extension.network_device.if.in.broadcast_pkts.count
value: oid:1.3.6.1.2.1.31.1.1.1.9
type: count
- key: com.dynatrace.extension.network_device.if.out.broadcast_pkts.count
value: oid:1.3.6.1.2.1.31.1.1.1.13
type: count
- key: com.dynatrace.extension.network_device.if.in.ucast_pkts.count
value: oid:1.3.6.1.2.1.31.1.1.1.7
type: count
- key: com.dynatrace.extension.network_device.if.out.ucast_pkts.count
value: oid:1.3.6.1.2.1.31.1.1.1.11
type: count

Adding a metric pipeline

Because OpenPipeline assets for extensions are decoupled from the main YAML manifest file, the following metric pipeline can be added to any extension that shapes its metric data according to the above guidelines. It can be used as-is for basic node extraction or customized even further based on your requirements.

See the full file
{
"displayName": "Custom network metrics pipeline",
"customId": "extension:custom-network-metrics",
"metadataList": [],
"processing": {
"processors": [
{
"id": "reshape-sysuptime-attributes",
"description": "Reshaping of fields on sysuptime metric for Smartscape node field extraction",
"enabled": true,
"type": "dql",
"matcher": "metric.key == \"com.dynatrace.extension.network_device.sysuptime\"",
"dql": {
"script": "fieldsAdd mac=array(chassis.mac), ip=array(toIp(device.address))"
}
},
{
"id": "reshape-if.status-attributes",
"description": "Reshaping of fields on if.status metric for Smartscape node field extraction",
"enabled": true,
"type": "dql",
"matcher": "metric.key == \"com.dynatrace.extension.network_device.if.status\"",
"dql": {
"script": "fieldsAdd mac=if(isNotNull(mac.address), array(mac.address))"
}
}
]
},
"smartscapeNodeExtraction": {
"processors": [
{
"id": "network-device-u-sysuptime",
"description": "Network device upsert from sysuptime metric",
"matcher": "metric.key == \"com.dynatrace.extension.network_device.sysuptime\"",
"enabled": true,
"type": "smartscapeNode",
"smartscapeNode": {
"nodeType": "EXT_NETWORK_DEVICE",
"nodeIdFieldName": "dt.smartscape.ext_network_device",
"idComponents": [
{
"idComponent": "identifier",
"referencedFieldName": "chassis.mac"
}
],
"extractNode": true,
"nodeName": {
"type": "field",
"field": {
"sourceFieldName": "sys.name"
}
},
"fieldsToExtract": [
{
"fieldName": "mac",
"referencedFieldName": "mac"
},
{
"fieldName": "ip",
"referencedFieldName": "ip"
},
{
"fieldName": "snmp.ip",
"referencedFieldName": "device.address"
},
{
"fieldName": "monitoring_mode",
"referencedFieldName": "monitoring.mode"
},
{
"fieldName": "device_type",
"referencedFieldName": "device.type"
},
{
"fieldName": "description",
"referencedFieldName": "sys.description"
},
{
"fieldName": "lldp.chassis_id",
"referencedFieldName": "lldp.chassis.id"
},
{
"fieldName": "cdp.device_id",
"referencedFieldName": "cdp.device.id"
}
]
}
},
{
"id": "network-device-metrics",
"description": "Network device ID extraction on all extension metrics",
"matcher": "isNotNull(chassis.mac)",
"enabled": true,
"type": "smartscapeNode",
"smartscapeNode": {
"nodeType": "EXT_NETWORK_DEVICE",
"nodeIdFieldName": "dt.smartscape.ext_network_device",
"idComponents": [
{
"idComponent": "identifier",
"referencedFieldName": "chassis.mac"
}
],
"extractNode": false
}
},
{
"id": "network-interface-u-status",
"description": "Network interface upsert from status metric",
"matcher": "metric.key == \"com.dynatrace.extension.network_device.if.status\"",
"enabled": true,
"type": "smartscapeNode",
"smartscapeNode": {
"nodeType": "EXT_NETWORK_INTERFACE",
"nodeIdFieldName": "dt.smartscape.ext_network_interface",
"idComponents": [
{
"idComponent": "name",
"referencedFieldName": "if.name"
},
{
"idComponent": "device.identifier",
"referencedFieldName": "chassis.mac"
}
],
"extractNode": true,
"nodeName": {
"type": "field",
"field": {
"sourceFieldName": "if.name"
}
},
"fieldsToExtract": [
{
"fieldName": "device.chassis_mac",
"referencedFieldName": "chassis.mac"
},
{
"fieldName": "mac",
"referencedFieldName": "mac"
},
{
"fieldName": "operational_status",
"referencedFieldName": "oper.status"
},
{
"fieldName": "admin_status",
"referencedFieldName": "admin.status"
},
{
"fieldName": "description",
"referencedFieldName": "if.descr"
},
{
"fieldName": "speed",
"referencedFieldName": "if.speed"
},
{
"fieldName": "alias",
"referencedFieldName": "if.alias"
},
{
"fieldName": "interface_type",
"referencedFieldName": "if.type"
}
],
"staticEdgesToExtract": [
{
"edgeType": "belongs_to",
"targetType": "EXT_NETWORK_DEVICE",
"targetIdFieldName": "dt.smartscape.ext_network_device"
}
]
}
},
{
"id": "network-interface-metrics",
"description": "Network interface ID extraction on all interface metrics",
"matcher": "matchesValue(metric.key, \"com.dynatrace.extension.network_device.if.*\")",
"enabled": true,
"type": "smartscapeNode",
"smartscapeNode": {
"nodeType": "EXT_NETWORK_INTERFACE",
"nodeIdFieldName": "dt.smartscape.ext_network_interface",
"idComponents": [
{
"idComponent": "name",
"referencedFieldName": "if.name"
},
{
"idComponent": "device.identifier",
"referencedFieldName": "chassis.mac"
}
],
"extractNode": true
}
}
]
}
}

For a full explanation of how to populate the Smartscape for network, check out our Network topology guide.

To link the above pipeline to your extension, two additional changes are needed:

  1. Create another extension asset (JSON file) to define the ingest source mapping.

    {
    "displayName": "Some Cisco Extension",
    "metadataList": [],
    "enabled": true,
    "sourceType": "extension",
    "source": "custom:some.cisco.extension",
    "staticRouting": {
    "pipelineType": "custom",
    "pipelineId": "extension:custom-network-metrics"
    }
    }
  2. Reference your assets in the extension YAML.

    openpipeline:
    sources:
    - displayName: Some cisco extension
    sourcePath: openpipeline/metrics.source.json
    configScope: metrics
    pipelines:
    - displayName: Some cisco extension
    pipelinePath: openpipeline/metrics.pipeline.json
    configScope: metrics

Overall, your extension folder should look like this:

extension
|-- openpipeline
| |-- metrics.source.json
| |-- metrics.pipeline.json
|
|-- extension.yaml

Viewing your data

After this extension has been built and uploaded and data is collected from the network device, it will be enriched with Smartscape IDs allowing you to use Infrastructure & Operations Infrastructure & Operations to view it.

From the main page, select Network devices, then choose the Utilization perspective. This view is built using the unified metric model along with Smartscape node enrichment.

Network devices in the Infrastructure & Operations app
Network devices in the Infrastructure & Operations app
Related tags
Infrastructure Observability