Skip to content

Telemetry Model Driven

Configure model-driven telemetry on IOS-XR devices including sensor groups, destination groups, and subscriptions for streaming telemetry data via gRPC, TCP, or UDP protocols. Sensor groups define the YANG paths to collect, destination groups specify where to send the data, and subscriptions bind sensor groups to destinations with collection parameters.

Diagram
NameTypeConstraintMandatoryDefault Value
telemetry_model_drivenClass[telemetry_model_driven]No

telemetry_model_driven (iosxr.devices.configuration)

Section titled “telemetry_model_driven (iosxr.devices.configuration)”
NameTypeConstraintMandatoryDefault Value
destination_groupsList[destination_groups]No
gnmiClass[gnmi]No
include_empty_valuesBooleantrue, falseNo
include_select_leaves_on_eventsBooleantrue, falseNo
max_containers_per_pathIntegermin: 0, max: 1024No
max_sensor_pathsIntegermin: 0, max: 4000No
sensor_groupsList[sensor_groups]No
strict_timerBooleantrue, falseNo
subscriptionsList[subscriptions]No
tcp_send_timeoutIntegermin: 0, max: 30No

destination_groups (iosxr.devices.configuration.telemetry_model_driven)

Section titled “destination_groups (iosxr.devices.configuration.telemetry_model_driven)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
destinationsList[destinations]No
vrfStringNo

gnmi (iosxr.devices.configuration.telemetry_model_driven)

Section titled “gnmi (iosxr.devices.configuration.telemetry_model_driven)”
NameTypeConstraintMandatoryDefault Value
bundlingBooleantrue, falseNo
bundling_sizeIntegermin: 1, max: 65535No
heartbeat_alwaysBooleantrue, falseNo
target_defined_cadence_factorIntegermin: 1, max: 20No
target_defined_minimum_cadenceIntegermin: 1, max: 65535No

sensor_groups (iosxr.devices.configuration.telemetry_model_driven)

Section titled “sensor_groups (iosxr.devices.configuration.telemetry_model_driven)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
sensor_pathsList[sensor_paths]No

subscriptions (iosxr.devices.configuration.telemetry_model_driven)

Section titled “subscriptions (iosxr.devices.configuration.telemetry_model_driven)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
destination_idsList[destination_ids]No
send_retryIntegermin: 0, max: 4294967295No
send_retry_durationIntegermin: 0, max: 4294967295No
sensor_group_idsList[sensor_group_ids]No
source_interfaceStringNo
source_qos_markingChoiceaf11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs1, cs2, cs3, cs4, cs5, cs6, cs7, default, efNo

destinations (iosxr.devices.configuration.telemetry_model_driven.destination_groups)

Section titled “destinations (iosxr.devices.configuration.telemetry_model_driven.destination_groups)”
NameTypeConstraintMandatoryDefault Value
addressStringYes
portIntegermin: 1, max: 65535Yes
address_familyChoiceipv4, ipv6No
encodingChoicejson, self-describing-gpb, gpbNo
grpc_gzipBooleantrue, falseNo
grpc_no_tlsBooleantrue, falseNo
grpc_tls_hostnameStringNo
protocolChoicegrpc, tcp, udpNo
udp_packetsizeIntegermin: 484, max: 65507No

sensor_paths (iosxr.devices.configuration.telemetry_model_driven.sensor_groups)

Section titled “sensor_paths (iosxr.devices.configuration.telemetry_model_driven.sensor_groups)”
NameTypeConstraintMandatoryDefault Value
nameStringYes

destination_ids (iosxr.devices.configuration.telemetry_model_driven.subscriptions)

Section titled “destination_ids (iosxr.devices.configuration.telemetry_model_driven.subscriptions)”
NameTypeConstraintMandatoryDefault Value
nameStringYes

sensor_group_ids (iosxr.devices.configuration.telemetry_model_driven.subscriptions)

Section titled “sensor_group_ids (iosxr.devices.configuration.telemetry_model_driven.subscriptions)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
heartbeat_alwaysBooleantrue, falseNo
heartbeat_intervalIntegermin: 1, max: 4294967295No
modeChoicetarget-definedNo
sample_intervalIntegermin: 0, max: 4294967295No
strict_timerBooleantrue, falseNo

Destination Address Detection

The destinations list accepts IPv4 addresses, IPv6 addresses, and hostnames in the address field. The Terraform module automatically detects the address type and routes entries to the appropriate. Hostname entries require an explicit address_family field (ipv4 or ipv6) to prefer a transport in the DNS response.

Protocol Routing

The protocol field accepts grpc, tcp, or udp. Protocol-specific attributes (grpc_no_tls, grpc_tls_hostname, grpc_gzip for gRPC; udp_packetsize for UDP) are only applied when the matching protocol is selected.

Example-1: gRPC destination with interface counters.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
telemetry_model_driven:
sensor_groups:
- name: INTF-COUNTERS
sensor_paths:
- name: Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters
destination_groups:
- name: COLLECTOR-1
destinations:
- address: 10.1.1.1
port: 57500
encoding: json
protocol: grpc
grpc_no_tls: true
subscriptions:
- name: SUB-INTF
sensor_group_ids:
- name: INTF-COUNTERS
sample_interval: 30000
destination_ids:
- name: COLLECTOR-1

Example-2: Target-defined mode, GNMI tuning, and VRF.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
telemetry_model_driven:
max_sensor_paths: 1000
gnmi:
heartbeat_always: true
bundling: true
bundling_size: 1024
target_defined_cadence_factor: 5
target_defined_minimum_cadence: 60
sensor_groups:
- name: BGP-NEIGHBORS
sensor_paths:
- name: Cisco-IOS-XR-ipv4-bgp-oper:bgp/instances/instance/instance-active/default-vrf/neighbors/neighbor
destination_groups:
- name: MONITORING
vrf: MGMT
destinations:
- address: 172.16.0.100
port: 57500
encoding: self-describing-gpb
protocol: grpc
- address: "2001:db8:100::1"
port: 57500
encoding: self-describing-gpb
protocol: grpc
grpc_gzip: true
subscriptions:
- name: SUB-BGP
source_interface: Loopback0
source_qos_marking: ef
sensor_group_ids:
- name: BGP-NEIGHBORS
mode: target-defined
destination_ids:
- name: MONITORING

Example-3: Hostname collector with UDP transport.

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
telemetry_model_driven:
sensor_groups:
- name: PLATFORM-HEALTH
sensor_paths:
- name: Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization
- name: Cisco-IOS-XR-nto-misc-oper:memory-summary/nodes/node/summary
destination_groups:
- name: DEST-UDP
destinations:
- address: collector.example.com
address_family: ipv4
port: 57500
encoding: json
protocol: udp
udp_packetsize: 1024
subscriptions:
- name: SUB-PLATFORM
sensor_group_ids:
- name: PLATFORM-HEALTH
sample_interval: 60000
destination_ids:
- name: DEST-UDP