OcNOS SP : Streaming Telemetry Guide : Streaming Telemetry Dial-Out Mode
Streaming Telemetry Dial-Out Mode
Overview
In OcNOS, dial-out telemetry subscriptions, also known as persistent subscriptions, ensure continuous data streaming, even if the Remote Procedure Call (gRPC) session terminates unexpectedly. With persistent subscriptions, the OcNOS device continuously retries to establish a gRPC connection to the collector server, thus maintaining persistent data streaming.
Feature Characteristics
The dial-out telemetry feature in OcNOS comprises several key aspects ensuring seamless data streaming and connectivity with collector servers:
The described topology outlines a system architecture that utilizes gRPC-based tunneling for persistent streaming telemetry.
Dial-Out Subscription Mode
Here is a detailed explanation of the components and data flow:
gNMI Client (gRPC Client): The gNMI client, which acts as the gRPC client in this scenario, is responsible for handling telemetry data and connecting to the OcNOS target device.
Tunnel Server: The tunnel server, part of the gNMI collector process, listens for incoming gRPC tunnel streams from the gRPC server.
gRPC Tunnel Stream: Represents the persistent communication channel established between the tunnel client (OcNOS) and the tunnel server (collector).
Tunnel Client: The gRPC tunnel client operates on the OcNOS device and connects to the tunnel server. It manages the tunneling of telemetry data.
gRPC Server: Interacts with the tunnel client to establish and manage the tunnel.
Note: Ensure that the tunnel server is reachable over the network from the tunnel client, and configure both the tunnel client and tunnel server with compatible authentication mechanisms.
Data Flow
The Data Flow: Dial-Out Mode flow chart illustrates streaming telemetry in Dial-out Mode.
Initialization: When the dial-out command subscription-name is applied successfully, the tunnel client on the OcNOS device initiates a connection to the tunnel server hosted on the collector.
Tunnel Establishment: Upon successful connection, the gRPC client and server establish a persistent tunnel stream. This tunnel facilitates the continuous transmission of telemetry data.
Note: OcNOS supports insecure tunnel connections.
Telemetry Data Transmission: When telemetry data needs to be transmitted from the OcNOS device, the gNMI client sends a Publish RPC request over the established tunnel.
Subscription Configuration: Telemetry commands follow the OpenConfig telemetry model, standardizing the configuration of telemetry subscriptions and related entities.
 
Data Flow: Dial-Out Mode
 
Benefits
Ensures continuous data streaming even in the event of gRPC session termination, enhancing network monitoring and troubleshooting capabilities.
Simplifies configuration and management of telemetry subscriptions using standard OpenConfig models.
Facilitates secure and reliable communication between the OcNOS device and the collector server.
Enhances interoperability by enabling integration with third-party gRPC client applications like gNMI client, expanding telemetry options for network operators.
Prerequisites
Before configuring Dial-Out mode, ensure that:
A supported OcNOS router running a compatible release is required.
Access to the management interface of the router is necessary.
Refer to the gnmic Installation to download the gNMI collector package.
Configuration
Set up the OcNOS router to transmit streaming telemetry data to a gNMI client using the dial-out method.
The sample configuration on the OcNOS router sets up streaming telemetry subscriptions using gNMI to monitor specific paths related to the state of Hard Disk, RAM, and Chassis. The router sends telemetry data to the specified collector over a configured tunnel connection. The gNMI client subscribed to these paths will receive updates regarding the state of RAM and Hard Disk at the specified intervals. This setup enables proactive monitoring and management of key hardware components on the network device.
Topology
In this setup, an OcNOS router functions as the data source for streaming telemetry, while a gNMI client acts as the receiver of telemetry data. The OcNOS router sends telemetry data to the gNMI client over a dial-out connection.
Dial-out Streaming Telemetry Topology
Use Case 1: Configure Telemetry on Management VRF
Note: Before configuring Dial-out, meet all Prerequisites.
1. Enable Streaming Telemetry on a management VRF.
OcNOS(config)#feature streaming-telemetry vrf management
2. Create Sensor Group
Create a sensor group (Platform) where sensor paths will be specified for dial-out subscriptions. Specify sensor paths within the sensor group (Platform) to monitor the chassis state.
OcNOS(config)#sensor-group Platform vrf management
OcNOS(telemetry-sensor-group)#sensor-path ipi:/components/component[name=CHASSIS]/state
OcNOS(telemetry-sensor-group)#exit
3. Create Destination Group
Create a destination group (Collector2) where tunnel server settings will be configured for dial-out subscriptions. Specify the tunnel server (gNMI Client) IP address (10.21.3.4) and port (11123) within the destination group (Collector2).
OcNOS(config)#destination-group Collector2 vrf management
OcNOS(telemetry-grpc-tunnel-group)#tunnel-server ip 10.21.3.4 port 11123
OcNOS(telemetry-grpc-tunnel-group)#exit
4. Create Persistent Subscription
Create a persistent subscription (storage2), encoding type (JSON-IETF), and associate it with the destination group (Collector2), and sensor group (Platform) to monitor the chassis state with a sample interval (95 seconds).
OcNOS(config)#subscription-name storage2 vrf management
OcNOS(telemetry-subscription)#encoding json-ietf
OcNOS(telemetry-subscription)#destination-group Collector2
OcNOS(telemetry-subscription)#sensor-group Platform sample-interval 95
OcNOS(telemetry-subscription)#commit
OcNOS(telemetry-subscription)#exit
Streaming Telemetry Snippet Configurations on Management VRF
To verify the telemetry configuration and view the overall commands used for dial-out subscriptions, use the show running-config streaming-telemetry command on the router.
OcNOS#show running-config streaming-telemetry
!
feature streaming-telemetry vrf management
!
sensor-group Platform vrf management
sensor-path ipi:/components/component[name=CHASSIS]/state
!
destination-group Collector2 vrf management
tunnel-server ip 10.21.3.4 port 11123
!
subscription-name storage2 vrf management
destination-group Collector2
sensor-group Platform sample-interval 95
!
!
Use Case 2: Configure Telemetry on User-defined VRF
Note: Before configuring Dial-out, meet all Prerequisites.
1. Enable Streaming Telemetry in a user-defined VRF on an OcNOS router.
OcNOS(config)#ip vrf VRF1
OcNOS(config-vrf)#exit
OcNOS(config)#feature streaming-telemetry vrf VRF1
2. Create Sensor Group
Create a sensor group (Platform) where sensor paths will be specified for dial-out subscriptions. Specify sensor paths within the sensor group (Platform) to monitor the state of RAM and Hard Disk.
OcNOS(config)#sensor-group Platform vrf VRF1
OcNOS(telemetry-sensor-group)#sensor-path ipi:/components/component[name=RAM]/ram/state
OcNOS(telemetry-sensor-group)#sensor-path ipi:/components/component[name=HARD-DISK]/storage/state
OcNOS(telemetry-sensor-group)#exit
3. Create Destination Group
Create a destination group (Collector3) where tunnel server settings will be configured for dial-out subscriptions. Specify the tunnel server (gNMI Client) IP address (10.21.3.4) and port (11123) within the destination group (Collector3).
OcNOS(config)#destination-group Collector3 vrf VRF1
OcNOS(telemetry-grpc-tunnel-group)#tunnel-server ip 10.21.3.4 port 11123
OcNOS(telemetry-grpc-tunnel-group)#exit
4. Create Persistent Subscription
Create a persistent subscription (storage), encoding type (JSON-IETF), and associate it with the destination group (Collector3), and sensor group (Platform) to monitor the state of RAM and Hard Disk with a sample interval (95 seconds).
OcNOS(config)#subscription-name storage vrf VRF1
OcNOS(telemetry-subscription)#encoding json-ietf
OcNOS(telemetry-subscription)#destination-group Collector3
OcNOS(telemetry-subscription)#sensor-group Platform sample-interval 95
OcNOS(telemetry-subscription)#commit
OcNOS(telemetry-subscription)#exit
 
Streaming Telemetry Snippet Configurations on User-defined VRF
To verify the telemetry configuration and view the overall commands used for dial-out subscriptions, use the show running-config streaming-telemetry command on the router.
OcNOS#show running-config streaming-telemetry
!
feature streaming-telemetry vrf VRF1
debug telemetry gnmi enable severity debug
!
sensor-group Platform vrf VRF1
sensor-path ipi:/components/component[name=RAM]/ram/state
sensor-path ipi:/components/component[name=HARD-DISK]/storage/state
!
destination-group Collector3 vrf VRF1
tunnel-server ip 10.21.3.4 port 11123
!
subscription-name storage vrf VRF1
destination-group Collector3
sensor-group Platform sample-interval 95
!
Use Case 3: Configure Telemetry on Default VRF
Note: Before configuring Dial-out, meet all Prerequisites.
1. Enable Streaming Telemetry in a default VRF on an OcNOS router.
OcNOS(config)#feature streaming-telemetry
2. Create Sensor Group
Create a sensor group (Platform) where sensor paths will be specified for dial-out subscriptions. Specify sensor paths within the sensor group (Platform) to monitor the state of RAM and Hard Disk.
OcNOS(config)#sensor-group Platform
OcNOS(telemetry-sensor-group)#sensor-path ipi:/components/component[name=RAM]/ram/state
OcNOS(telemetry-sensor-group)#sensor-path ipi:/components/component[name=HARD-DISK]/storage/state
OcNOS(telemetry-sensor-group)#exit
3. Create Destination Group
Create a destination group (Collector1) where tunnel server settings will be configured for dial-out subscriptions. Specify the tunnel server (gNMI Client) IP address (10.12.101.72) and port (11161) within the destination group (Collector1).
OcNOS(config)#destination-group Collector1
OcNOS(telemetry-grpc-tunnel-group)#tunnel-server ip 10.12.101.72 port 11161
OcNOS(telemetry-grpc-tunnel-group)#exit
4. Create Persistent Subscription
Create a persistent subscription (storage), encoding type (JSON-IETF), and associate it with the destination group (Collector1), and sensor group (Platform) to monitor the state of RAM and Hard Disk with a sample interval (10 seconds).
OcNOS(config)#subscription-name storage
OcNOS(telemetry-subscription)#encoding json-ietf
OcNOS(telemetry-subscription)#destination-group Collector1
OcNOS(telemetry-subscription)#sensor-group Platform sample-interval 10
OcNOS(telemetry-subscription)#commit
OcNOS(telemetry-subscription)#exit
 
Streaming Telemetry Snippet Configurations on default VRF
To verify the telemetry configuration and view the overall commands used for dial-out subscriptions, use the show running-config streaming-telemetry command on the router.
OcNOS#show running-config streaming-telemetry
!
feature streaming-telemetry
debug telemetry gnmi enable severity debug
!
sensor-group Platform
sensor-path ipi:/components/component[name=RAM]/ram/state
sensor-path ipi:/components/component[name=HARD-DISK]/storage/state
!
destination-group Collector1
tunnel-server ip 10.12.101.72 port 11161
!
subscription-name storage
destination-group Collector1
sensor-group Platform sample-interval 10
!
Validation
To verify persistent telemetry configurations and monitor the telemetry data transmission settings on the router, check the output of the show streaming-telemetry persistent-subscriptions details command.
Use Case 1: Validate Telemetry on Management VRF
#show streaming-telemetry persistent-subscriptions details
 
Feature streaming telemetry : Enabled
 
VRF : management
Platform type : Standard range
Maximum sensor-paths : 50
Minimum sample-interval : 90
Number of active sensor-paths : 1 (Dial-In : 0, Dial-out : 1)
Tunnel-server Retry-interval : Default-60 (seconds)
 
Enc-Type : Encoding type
SI : Sampling Interval in seconds
Origin:Path : Sensor Path
 
Dial-Out Subscription Details:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Subscription-name : storage2
Status : ACTIVE
Enc-Type : JSON-IETF
Tunnel-server details:
~~~~~~~~~~~~~~~~~~~~~~
Destination-group Status Tunnel-IP:Port
----------------- ------ ---------------
Collector2 ACTIVE 10.21.3.4:11123
Sensor-group details:
~~~~~~~~~~~~~~~~~~~~~
Sensor-group SI Origin:Path
------------ ---- -----------
Platform 95 ipi:/components/component[name=CHASSIS]/state
 
[*]-> Indicates child path learnt from parent config, not configured by user
 
Use Case 2: Validate Telemetry on User-defined VRF
#show streaming-telemetry persistent-subscriptions details
 
Feature streaming telemetry : Enabled
VRF : VRF1
Platform type : Standard range
Maximum sensor-paths : 50
Minimum sample-interval : 90
Number of active sensor-paths : 2 (Dial-In : 0, Dial-out : 2)
Tunnel-server Retry-interval : Default-60 (seconds)
 
Enc-Type : Encoding type
SI : Sampling Interval in seconds
Origin:Path : Sensor Path
 
Dial-Out Subscription Details:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Subscription-name : storage
Status : ACTIVE
Enc-Type : JSON-IETF
Tunnel-server details:
~~~~~~~~~~~~~~~~~~~~~~
Destination-group Status Tunnel-IP:Port
----------------- ------ ---------------
Collector3 ACTIVE 10.21.3.4:11123
Sensor-group details:
~~~~~~~~~~~~~~~~~~~~~
Sensor-group SI Origin:Path
------------ ---- -----------
Platform 95 ipi:/components/component[name=RAM]/ram/state
ipi:/components/component[name=HARD-DISK]/storage/state
[*]-> Indicates child path learnt from parent config, not configured by user
 
Use Case 3: Validate Telemetry on Default VRF
#show streaming-telemetry persistent-subscriptions details
 
Feature streaming telemetry : Enabled
 
VRF : default
Platform type : High range
Maximum sensor-paths : 100
Minimum sample-interval : 10
Number of active sensor-paths : 2 (Dial-In : 0, Dial-out : 2)
Tunnel-server Retry-interval : Default-60 (seconds)
 
Enc-Type : Encoding type
SI : Sampling Interval in seconds
Origin:Path : Sensor Path
 
Dial-Out Subscription Details:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Subscription-name : storage
Status : ACTIVE
Enc-Type : JSON-IETF
Tunnel-server details:
~~~~~~~~~~~~~~~~~~~~~~
Destination-group Status Tunnel-IP:Port
----------------- ------ ---------------
Collector1 IN-ACTIVE 10.12.101.72:11161
Sensor-group details:
~~~~~~~~~~~~~~~~~~~~~
Sensor-group SI Origin:Path
------------ ---- -----------
Platform 10 ipi:/components/component[name=RAM]/ram/state
ipi:/components/component[name=HARD-DISK]/storage/state
[*]-> Indicates child path learnt from parent config, not configured by user
 
Telemetry Subscription Invoked via gnmic Command and YAML Input
Start the gNMI collector with the --use-tunnel-server and publish options to receive the streamed gRPC responses. Execute the following command to start the gRPC tunnel server in listening mode, enabling it to accept incoming connections from gRPC tunnel clients (OcNOS target).
./gnmic --insecure --config <path to Tunnel-server yaml file> --use-tunnel-server publish
Invoke Publish RPC on OcNOS Target
The following output represents telemetry data published by the gnmic command, monitoring the state of Hard Disk and RAM on the specified OcNOS router.
# ./gnmic --insecure --config abc.yaml --use-tunnel-server publish
2024/04/12 11:22:50.516313 [gnmic] version=dev, commit=none, date=unknown, gitURL=, docs=https://gnmic.openconfig.net
2024/04/12 11:22:50.516377 [gnmic] using config file "abc.yaml"
2024/04/12 11:22:50.517770 [gnmic] starting output type file
2024/04/12 11:22:50.517971 [file_output:default-stdout] initialized file output: {"Cfg":{"FileName":"","FileType":"stdout","Format":"json","Multiline":true,"Indent":" ","Separator":"\n","OverrideTimestamps":false,"AddTarget":"","TargetTemplate":"","EventProcessors":null,"MsgTemplate":"","ConcurrencyLimit":1000,"EnableMetrics":false,"Debug":false}}
2024/04/12 11:22:50.518018 [gnmic] StartPublishCollector is invoked
2024/04/12 11:22:50.518446 [gnmic] Initializing error chan
2024/04/12 11:22:54.508410 [gnmic] tunnel server discovered target {ID:e8:c5:7a:fe:fd:32 Type:GNMI_GNOI}
2024/04/12 11:22:54.508720 [gnmic] adding target {"name":"e8:c5:7a:fe:fd:32","address":"e8:c5:7a:fe:fd:32","username":"root","password":"****","timeout":10000000000,"insecure":true,"skip-verify":false,"buffer-size":100,"retry-timer":10000000000,"log-tls-secret":false,"gzip":false,"token":"","tunnel-target-type":"GNMI_GNOI"}
2024/04/12 11:22:54.508756 [gnmic] calling publishStream
2024/04/12 11:22:54.508772 [gnmic] publishStream is invoked
2024/04/12 11:22:54.508779 [gnmic] targetPublishStream is invoked
2024/04/12 11:22:54.508830 [gnmic] a.targetsChan: 0xc0004eb1a0
2024/04/12 11:22:54.508840 [gnmic] t.Config.Outputs: []
2024/04/12 11:22:54.508850 [gnmic] starting target "e8:c5:7a:fe:fd:32" listener
2024/04/12 11:22:54.508879 [gnmic] queuing target "e8:c5:7a:fe:fd:32"
2024/04/12 11:22:54.508902 [gnmic] subscribing to target: "e8:c5:7a:fe:fd:32"
2024/04/12 11:22:54.508918 [gnmic] calling clientPublish
2024/04/12 11:22:54.508930 [gnmic] targetDialOpts: []grpc.DialOption
2024/04/12 11:22:54.508968 [gnmic] a.targetsChan: 0xc0004eb1a0
2024/04/12 11:22:54.508976 [gnmic] t.Config.Outputs: []
2024/04/12 11:22:54.509402 [gnmic] dialing tunnel connection for tunnel target "e8:c5:7a:fe:fd:32"
Publish Request sent to e8:c5:7a:fe:fd:32{
"source": "e8:c5:7a:fe:fd:32",
"subscription-name": "storage",
"timestamp": 1712920892603436151,
"time": "2024-04-12T16:51:32.603436151+05:30",
"updates": [
{
"Path": "ipi:components/component[name=HARD-DISK]/storage/state",
"values": {
"components/component/storage/state": {
"free-memory": 0,
"total-memory": 61057,
"used-memory": 0
}
}
}
]
}
{
"source": "e8:c5:7a:fe:fd:32",
"subscription-name": "storage",
"timestamp": 1712920892603253590,
"time": "2024-04-12T16:51:32.60325359+05:30",
"updates": [
{
"Path": "ipi:components/component[name=RAM]/ram/state",
"values": {
"components/component/ram/state": {
"available-high-memory": 0,
"available-memory": 15084,
"buffers": 101,
"current-process-count": 227,
"free-swap": 0,
"shared-memory": 28,
"total-high-memory": 0,
"total-memory": 16010,
"total-swap": 0,
"used-memory": 926
}
}
}
]
}
The output of the Publish RPC includes the following information:
Publish RPC Output details
Option
Description
source
Displays the MAC address associated with the management port of the target. Each gNMI device have a unique target ID, allowing the collector to distinguish responses between various targets.
 
subscription-name
The name of the subscription.
timestamp
The timestamp of the response.
time
The timestamp in a human-readable format.
updates
An array of updates, each containing Path and Values.
Path
The path to the published data.
values
The values of the published data.
The telemetry data output includes detailed fields for monitoring the state of the Hard Disk and RAM, offering insights into the memory and storage utilization of the OcNOS router.
1. Hard Disk State
Free Memory: The amount of free memory available on the hard disk.
Total Memory: The total capacity of memory on the hard disk.
Used Memory: The amount of memory currently in use on the hard disk.
2. RAM State
Available High Memory: The available high memory in the RAM.
Available Memory: The total available memory in the RAM.
Buffers: The number of buffer processes running in the RAM.
Current Process Count: The count of active processes in the RAM.
Free Swap: The amount of free swap space in the RAM.
Shared Memory: The shared memory usage in the RAM.
Total High Memory: The total high memory capacity in the RAM.
Total Memory: The total memory capacity in the RAM.
Total Swap: The total swap space available in the RAM.
Used Memory: The amount of memory currently in use in the RAM.
Implementation Examples
Real-time Visibility: Operators have real-time visibility into network device health and performance metrics.
Proactive Maintenance: Early detection of issues allows for proactive maintenance and troubleshooting.
Optimized Resource Allocation: Insights from telemetry data help optimize resource allocation and capacity planning.
Enhanced Network Reliability: Continuous monitoring enhances network reliability and reduces downtime.
Dial-Out Commands
The streaming telemetry dial-out mode introduces the following configuration commands.
destination-group
Use this command to create a destination-group for persistent subscriptions on the OcNOS device. The VRF parameter must match the VRF specified in the feature streaming-telemetry command. Can create and attach multiple destination-groups to activate streaming telemetry subscriptions.
Use the no form of this command to delete a destination-group.
Command Syntax
destination-group TUNNEL-NAME (vrf (management|NAME)|)
no destination-group TUNNEL-NAME (vrf (management|NAME)|)
Parameters
 
Default
None
Command Mode
Configure Mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
The following example creates a destination group named tunnel-1 in a default VRF for transmitting telemetry data.
OcNOS(config)#destination-group tunnel-1
OcNOS(telemetry-grpc-tunnel-group)#commit
 
destination-group GRPC
Use this command to add a destination-group under subscriptions. Can create multiple destination-groups within a subscription mode.
Use no parameter of this command to remove the destination-groups.
Note: Ensure that the GRPC-GROUP-NAME is configured in the device's configuration mode before adding it to a subscription mode.
Command Syntax
destination-group GRPC-GROUP-NAME
no destination-group GRPC-GROUP-NAME
Parameters
 
Default
None
Command Mode
Telemetry-subscription Mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
Ensure that the GRPC-GROUP-NAME (tunnel-1) is already configured in the current configuration mode.
OcNOS#configure terminal
OcNOS(config)#show running-config streaming-telemetry
!
feature streaming-telemetry
grpc-tunnel-server retry-interval 60
!
sensor-group stream-1
sensor-path ipi:/interfaces/interface[name=eth0]/state/counters
!
destination-group tunnel-1
tunnel-server ip 10.12.66.160 port 11163
!
subscription-name sub-1
sensor-group stream-1 sample-interval 1000
!
!
The following commands illustrates how to add a destination group (tunnel-1) under subscription mode (sub-1) and verify the configuration using the show command output.
OcNOS(config)#subscription-name sub-1
OcNOS(telemetry-subscription)#destination-group tunnel-1
OcNOS(telemetry-subscription)#commit
OcNOS(telemetry-subscription)#exit
OcNOS(config)#show running-config streaming-telemetry
!
feature streaming-telemetry
grpc-tunnel-server retry-interval 60
!
sensor-group stream-1
sensor-path ipi:/interfaces/interface[name=eth0]/state/counters
!
destination-group tunnel-1
tunnel-server ip 10.12.66.160 port 11163
!
subscription-name sub-1
destination-group tunnel-1
sensor-group stream-1 sample-interval 1000
!
!
encoding
Use this command to specify or modify encoding types for subscriptions in streaming telemetry.
Use no parameter of this command to remove the encoding option.
Note: Modifying the encoding type is not allowed for active subscriptions.
Command Syntax
encoding (json-ietf|json|proto)
no encoding
Parameters
 
Default
None
Command Mode
Telemetry-subscription Mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
The following commands demonstrate how to create a telemetry subscription named sub-3 using the JSON encoding type.
OcNOS#configure terminal
OcNOS(config)#subscription-name sub-3
OcNOS(telemetry-subscription)#encoding json
OcNOS(telemetry-subscription)#commit
 
grpc-tunnel-server retry-interval
Use this command to set the interval for retry attempts when establishing a connection for the GNMI server to the tunnel-server. The VRF parameter must match the VRF specified in the feature streaming-telemetry command.
Use no parameter of this command to unset the retry-interval timer.
Command Syntax
grpc-tunnel-server retry-interval <30-3000> (vrf (management|NAME)|)
no grpc-tunnel-server retry-interval (vrf (management|NAME)|)
Parameters
 
Default
None
Command Mode
Configure mode
Applicability
Introduced in the OcNOS version 6.5.2.
Example
The following configuration illustrates how to set the retry-interval timer for the gNMI server to the tunnel-server with a value of 80 seconds in a default VRF.
OcNOS#configure terminal
OcNOS(config)#feature streaming-telemetry
OcNOS(config)#grpc-tunnel-server retry-interval 80
OcNOS(config)#commit
sensor-group
Use this command to create a sensor group for persistent subscriptions in an OcNOS device. Multiple sensor groups can be created to specify the paths of interest for streaming telemetry. The VRF parameter must match the VRF specified in the feature streaming-telemetry command. These sensor groups are attached to subscriptions to activate streaming telemetry.
Use no parameter of this command to remove a created sensor group.
Command Syntax
sensor-group SENSOR-NAME (vrf (management|NAME)|)
no sensor-group SENSOR-NAME (vrf (management|NAME)|)
Parameters
 
Default
None
Command Mode
Configure mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
The following commands demonstrate how to create a sensor group named stream-1 for persistent telemetry subscriptions in a default VRF on an OcNOS device:
OcNOS#configure terminal
OcNOS(config)#sensor-group stream-1
OcNOS(telemetry-sensor-group)#commit
OcNOS(telemetry-sensor-group)#exit
 
sensor-group sample-interval
Use this command to to associate a sensor group with a specific sampling interval under subscriptions for activating streaming telemetry. Multiple sensor groups can be created.
Use no parameter of this command to remove the sensor-groups from a subscription.
Note: Before adding a SENSOR-GROUP-NAME to a subscription, ensure the sensor group is already configured in the configuration mode.
Command Syntax
sensor-group SENSOR-GROUP-NAME sample-interval <10-3600>
no sensor-group SENSOR-GROUP-NAME
Parameters
 
Default
None
Command Mode
Telemetry-subscription Mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
Ensure that the SENSOR-GROUP-NAME (stream-1) is already configured in the current configuration mode.
OcNOS#configure terminal
OcNOS(config)#show running-config streaming-telemetry
!
feature streaming-telemetry
grpc-tunnel-server retry-interval 60
!
sensor-group stream-1
sensor-path ipi:/interfaces/interface[name=eth0]/state/counters
!
subscription-name sub-1
!
!
The following commands illustrates how to add a sensor group (stream-1) under subscription mode (sub-1) and verify the configuration using the show command output.
OcNOS(config)#subscription-name sub-1
OcNOS(telemetry-subscription)#sensor-group stream-1 sample-interval 1000
OcNOS(telemetry-subscription)#commit
OcNOS(telemetry-subscription)#exit
OcNOS(config)#show running-config streaming-telemetry
!
feature streaming-telemetry
grpc-tunnel-server retry-interval 60
!
sensor-group stream-1
sensor-path ipi:/interfaces/interface[name=eth0]/state/counters
!
subscription-name sub-1
sensor-group stream-1 sample-interval 1000
!
!
sensor-path
Use this command to add sensor paths under sensor-groups. Can add multiple sensor paths to a single sensor group.
Use no parameter of this command to remove sensor paths.
Command Syntax
sensor-path SENSOR-PATH
no sensor-path SENSOR-PATH
Parameters
 
Default
None
Command Mode
Telemetry-sensor-group Mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
The following example demonstrates how to configure a sensor group (stream-1) and add multiple sensor paths to it for streaming telemetry.
OcNOS#configure terminal
OcNOS(config)#sensor-group stream-1
OcNOS(telemetry-sensor-group)#sensor-path ipi:/interfaces/interface[name=eth0]/state/counters
OcNOS(telemetry-sensor-group)#sensor-path /interfaces/interface[name=xe2]/state/counters
OcNOS(telemetry-sensor-group)#sensor-path openconfig:/interfaces/interface[name=xe3]/state/counters
OcNOS(telemetry-sensor-group)#commit
OcNOS(telemetry-sensor-group)#exit
show streaming-telemetry persistent-subscriptions
Use this command to display a brief summary of the streaming-telemetry dial-out configurations. This command provides a concise view of the persistent subscription settings configured on the device.
Command Syntax
show streaming-telemetry persistent-subscriptions brief
show streaming-telemetry persistent-subscriptions details (SUBSCRIPTION-NAME|)
Parameters
 
Default
None
Command Mode
Exec mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
The command output lists each persistent subscription with its associated details.
OcNOS#show streaming-telemetry persistent-subscriptions details
 
Feature streaming telemetry : Enabled
 
VRF : default
Platform type : High range
Maximum sensor-paths : 100
Minimum sample-interval : 10
Number of active sensor-paths : 2 (Dial-In : 0, Dial-out : 2)
Tunnel-server Retry-interval : Default-60 (seconds)
 
Enc-Type : Encoding type
SI : Sampling Interval in seconds
Origin:Path : Sensor Path
 
Dial-Out Subscription Details:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Subscription-name : State
Status : ACTIVE
Enc-Type : JSON
Tunnel-server details:
~~~~~~~~~~~~~~~~~~~~~~
Destination-group Status Tunnel-IP:Port
----------------- ------ ---------------
Collector1 IN-ACTIVE 10.12.101.72:11161
Sensor-group details:
~~~~~~~~~~~~~~~~~~~~~
Sensor-group SI Origin:Path
------------ ---- -----------
storage 10 ipi:/components/component[name=RAM]/ram/state
ipi:/components/component[name=HARD-DISK]/storage/state
 
The following table explains the output fields.
 
Field
Description
Feature streaming telemetry
Marked as “Enabled” confirms that streaming telemetry is active on the device.
VRF
Specifies the VRF type.
Platform type
Displays the platform type is standard or high range.
Maximum sensor-paths
Shows the maximum number of sensor paths allowed. For more details, refer to Scale Scenarios section.
Minimum sample-interval
Indicates the minimum sampling interval in seconds. For more details, refer to Scale Scenarios section.
Number of active sensor-paths
Shows the total number of active sensor paths for Dial-In and Dial-Out subscriptions (Stream mode subscriptions).
Tunnel-server Default-Retry-interval
The duration between retry attempts when establishing a connection for the GNMI server to the tunnel server.
Subscription Name
Name of the persistent subscription.
Storage Status or Status
Current status of the subscription (ACTIVE or IN-ACTIVE).
Enc-Type
Encoding type used for telemetry data (JSON, JSON-IETF, Proto).
Destination Group
Define the tunnel server settings to which telemetry data is sent for dial-out subscriptions.
Sensor Group
Sensor group associated with the subscription.
Sample Interval (SI)
Sampling interval for the sensor group.
Tunnel-IP:Port
IP address and port of the tunnel server for dial-out subscriptions.
Origin:Path
The specific sensor paths that are being monitored or streamed by the telemetry system.
subscription-name
Use this command to create named subscriptions for persistent telemetry configurations in an OcNOS device. The VRF parameter must match the VRF specified in the feature streaming-telemetry command. Multiple subscriptions can be created. These subscriptions are essential for activating streaming telemetry, as they define specific settings such as associated destination groups and sensor groups.
Use no parameter of this command to delete a subscription.
Command Syntax
subscription-name NAME (vrf (management|NAME)|)
no subscription-name NAME (vrf (management|NAME)|)
Parameters
 
Default
None
Command Mode
Configure Mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
The following command demonstrates configuring a subscription (sub-1) on an OcNOS device. The subscription remains in-active because the sensor groups and destination groups have not been added to it.
OcNOS#configure terminal
OcNOS(config)#subscription-name sub-1
OcNOS(telemetry-subscription)#commit
Subscription sub-1 is "in-active": sensor-group(s) and destination-group(s) are not configured.
OcNOS(telemetry-subscription)#exit
OcNOS(config)#show running-config streaming-telemetry
!
feature streaming-telemetry
!
subscription-name sub-1
!
!
tunnel-server
Use this command to add tunnel-servers under destination groups. Can create multiple tunnel servers within a destination group.
Use no parameter of this command to remove a tunnel server from the destination group.
Command Syntax
tunnel-server ip A.B.C.D port <1-65535>
no tunnel-server ip A.B.C.D port <1-65535>
Parameters
 
Default
None
Command Mode
Telemetry-GRPC-tunnel-group Mode
Applicability
Introduced in OcNOS version 6.5.2.
Example
The following command demonstrates how to add a tunnel server within the destination group.
OcNOS#configure terminal
OcNOS(config)#destination-group tunnel-1
OcNOS(telemetry-grpc-tunnel-group)#tunnel-server ip 10.12.66.160 port 11163
OcNOS(telemetry-grpc-tunnel-group)#commit
OcNOS(telemetry-grpc-tunnel-group)#exit
Revised CLI Commands
The following is the revised command for telemetry.
show techsupport
The existing syntax now includes the newly added parameter for telemetry, namely gnmi.
The command show techsupport gnmi collects gNMI-related information for technical support. For more details, refer to the show techsupport command in the Software Monitoring and Reporting chapter in the Sysytem Management Guide.
Glossary
The following provides definitions for key terms or abbreviations and their meanings used throughout this document:
 
Key Terms/Acronym
Description
Remote Procedure Call (gRPC)
gRPC protocol that uses HTTP/2 for transport and protocol buffers for serialization.
Persistent Subscription
Telemetry subscription that maintains continuous data streaming even after interruptions in connectivity.
gRPC Network Management Interface (gNMI)
A standardized protocol for network management using gRPC and protocol buffers.
Destination Group
Specifies the collector server's details and connection parameters for telemetry subscriptions.
Sensor Group
Contains sensor paths that define the specific data to be monitored and transmitted.
OpenConfig
Standardized model for network configuration and telemetry using a vendor-neutral approach.