Skip to content

MDT Subscription

Model Driven Telemetry (MDT) is a push-based streaming telemetry mechanism that provides real-time, structured data from network devices using YANG data models and protocols such as gRPC, enabling continuous monitoring and analytics. It supports both periodic data collection and event-driven notifications with configurable update policies, allowing network operators to receive precise operational data including interface statistics, routing table changes, and system health metrics. MDT subscriptions eliminate the need for polling-based monitoring by delivering high-frequency, low-latency data streams that can be consumed by network management systems, analytics platforms, and automated monitoring tools.

Diagram
NameTypeConstraintMandatoryDefault Value
mdt_subscriptionsList[mdt_subscriptions]No

mdt_subscriptions (iosxe.devices.configuration)

Section titled “mdt_subscriptions (iosxe.devices.configuration)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 0, max: 2147483647No
streamStringNo
encodingStringNo
source_vrfStringNo
source_ipIPNo
update_policy_periodicIntegermin: 0, max: 4294967295No
update_policy_on_changeBooleantrue, falseNo
filter_xpathStringNo
receiversList[receivers]No

receivers (iosxe.devices.configuration.mdt_subscriptions)

Section titled “receivers (iosxe.devices.configuration.mdt_subscriptions)”
NameTypeConstraintMandatoryDefault Value
ipIPYes
portIntegermin: 0, max: 65535Yes
protocolStringYes

By providing real-time, push-based streaming telemetry, MDT subscriptions enable continuous monitoring and analytics without traditional polling.

Key Components:

  • Subscription ID (id): Unique identifier for the telemetry subscription.

  • Stream Type (stream): Specifies the telemetry stream type (e.g., yang-push, yang-notif-native).

  • Encoding (encoding): Sets the encoding format for telemetry data (e.g., encode-kvgpb, encode-json).

  • Source VRF (source_vrf): Specifies the source VRF for the telemetry stream.

  • Source IP Address (source_ip): Sets the source IP address for the telemetry stream.

  • Update Policy (update_policy_on_change, update_policy_periodic): Configures the update policy (on-change or periodic interval).

  • Filter XPath (filter_xpath): Applies an XPath filter for specific data points.

  • Receivers (receivers): Defines receiver details (IP address, port, protocol).

Key Parameters Briefly Explained:

  • id: Subscription identifier.
  • stream: Telemetry stream type.
  • encoding: Data encoding format.
  • source_vrf: Source VRF.
  • source_ip: Source IP address.
  • update_policy_on_change, update_policy_periodic: Update policy settings.
  • filter_xpath: XPath filter for data selection.
  • receivers: Telemetry data receivers.

You can use these MDT Subscription parameters to configure real-time streaming telemetry from your network devices. Customize the subscription ID, stream type, encoding, data filters, and receiver details to fit your monitoring and analytics requirements. Adjusting these parameters lets you tailor the type and frequency of operational data streamed from the device.

The following configuration describes how to set up MDT subscriptions on a Cisco IOS-XE device, including event-driven and periodic subscriptions, stream types, encoding, source information, XPath filters, and receiver details.

telemetry ietf subscription 202
stream yang-notif-native
encoding encode-kvgpb
source-vrf Mgmt-test
source-address 1.2.9.10
update-policy on-change
filter xpath /ios-events-ios-xe-oper:ospf-neighbor-state-change
receiver ip 9.8.3.2 57600 protocol grpc-tcp
!
telemetry ietf subscription 203
stream yang-push
encoding encode-json
update-policy periodic 30000
filter xpath /interfaces-ios-xe-oper:interfaces/interface
receiver ip 192.168.1.100 50051 protocol grpc-tcp

The following YAML code defines MDT subscriptions on an IOS-XE device, including subscription IDs, stream types, encoding, source VRF/IP, update policies, XPath filters, and receiver details.

iosxe:
devices:
- name: Device1
configuration:
mdt_subscriptions:
- id: 202
stream: yang-notif-native
encoding: encode-kvgpb
source_vrf: Mgmt-test
source_ip: 1.2.9.10
update_policy_on_change: true
filter_xpath: /ios-events-ios-xe-oper:ospf-neighbor-state-change
receivers:
- ip: 9.8.3.2
port: 57600
protocol: grpc-tcp
- id: 203
stream: yang-push
encoding: encode-json
update_policy_periodic: 30000
filter_xpath: /interfaces-ios-xe-oper:interfaces/interface
receivers:
- ip: 192.168.1.100
port: 50051
protocol: grpc-tcp