- Table of Contents
- Related Documents
-
Title | Size | Download |
---|---|---|
01-gRPC commands | 219.59 KB |
Contents
destination-group (subscription view)
destination-group (telemetry view)
sensor-group (subscription view)
gRPC commands
Generic gRPC commands
display grpc
Use display grpc to display gRPC information.
Syntax
display grpc [ verbose ]
Views
Any view
Predefined user roles
network-admin
network-operator
Parameters
verbose: Display detailed gRPC information. If you do not specify this keyword, the command displays brief gRPC information.
Examples
# Display brief gRPC information.
<Sysname> display grpc
gRPC status : Enabled
PKI domain : grpc
Current-time: 2020-05-20T04:12:48.119
------------Dial-in mode information------------
gRPC server status: Enabled
gRPC server port: 50052
gRPC server compression: GZIP
Session idle-timeout: 10 minutes
Session count: 1
ID IP Address:Port UserName
1 192.1.11.254:53030 test
------------Dial-out mode information-----------
Sensor group count: 10
Sensor path count: 70
Destination group count: 5
Destination count: 4
Subscription count: 1
Connection ID: 1
IP address:Port: 192.1.1.254:11111
Encoding: JSON
Status: Connected
Table 1 Command output
Field |
Description |
gRPC status |
Status of the gRPC service: · Enabled—The gRPC service is enabled. · Disabled—The gRPC service is disabled. |
PKI domain |
PKI domain for secure gRPC connections to collectors. This field displays a hyphen (-) if no PKI domain has been specified by using the grpc pki domain command. |
Current-time |
Current system time. |
Dial-in mode information |
Information about gRPC in dial-in mode. |
gRPC server status |
Status of the gRPC dial-in mode: · Enabled—The gRPC dial-in mode is enabled. · Disabled—The gRPC dial-in mode is disabled. |
gRPC server port |
Port number for the gRPC service. |
gRPC server compression |
Data compression method for the gRPC server: · GZIP—Gzip compression method. · None—No data compression. |
Session idle-timeout |
gRPC session idle timeout timer, in minutes. |
Session count |
Number of gRPC sessions. |
ID |
ID of a gRPC session. |
IP Address:Port |
IP address and port number of the gRPC client. |
UserName |
Username of the gRPC user. |
Dial-out mode information |
Information about gRPC in dial-out mode. |
Sensor group count |
Number of sensor groups. |
Sensor path count |
Number of sensor paths. |
Destination group count |
Number of destination groups. |
Destination count |
Number of collectors. |
Subscription count |
Number of subscriptions. |
Connection ID |
ID of the connection between the device and a collector. |
IP address:Port |
IP address and port number of the collector. |
Encoding |
Encoding format for data packets sent to the controller. |
Status |
Status of the channel between the device and the collector: · Init—The channel is being initialized. · Idle—The channel is idle. · Connecting—The channel is being established. · Connected—The channel has been established. · Transient failure—The channel has failed transiently and is attempting to recover. · Shut down—The channel has been closed because of an issue. |
# Display detailed gRPC information.
<Sysname> display grpc verbose
gRPC status : Enabled
PKI domain : grpc
Current-time: 2020-05-20T04:12:44.346
------------Dial-in mode information------------
gRPC server status: Enabled
gRPC server port: 50052
gRPC server compression: GZIP
Session idle-timeout: 10 minutes
Session count: 1
Session ID: 1
User name: test
Login time:2020-05-19 16:40:16 Idle time : 3 mins 41 s
Client IP address : 192.1.11.254:53030
Received RPCs : 39 Received erroneous RPCs : 6
Received subscription: 0 Sent notifications: 0
------------Dial-out mode information-----------
Sensor group count: 10
Sensor path count: 70
Destination group count: 5
Destination count: 4
Subscription count: 1
Subscription s
Subscription mode: non-gNMI
DSCP value: 0
Source-address or interface: not-config
Telemetry data model: 2-layer
Encoding: JSON
Protocol: UDP
Compression: None
Sensor group: s
Sampling interval: N/A
Sampling type Effective sampling interval Sensor path
...
destination-group: wyq
Start-time: 2020-05-20T03:38:05.833
IP:Port: 1.1.1.1:50051
VPN: N/A
Periodic sampling statistics:
Effective count: 272
Sent successfully: 0 Failed: 68
Event-triggered statistics:
Effective count: 0
Sent successfully: 0 Failed: 0
Queued packets/Queue size: 204/1000
Dropped: 0
Last error: Channel(Connecting)
...
Table 2 Command output
Field |
Description |
gRPC status |
Status of the gRPC service: · Enabled—The gRPC service is enabled. · Disabled—The gRPC service is disabled. |
PKI domain |
PKI domain for securing gRPC connections to collectors. This field displays a hyphen (-) if no PKI domain has been specified by using the grpc pki domain command. |
Current-time |
Current system time. |
Dial-in mode information |
Information about gRPC in dial-in mode. |
gRPC server status |
Status of the gRPC dial-in mode: · Enabled—The gRPC dial-in mode is enabled. · Disabled—The gRPC dial-in mode is disabled. |
gRPC server port |
Port number for the gRPC service. |
gRPC server compression |
Data compression method for the gRPC server: · GZIP—Gzip compression method. · None—No data compression. |
Session idle-timeout |
gRPC session idle timeout timer, in minutes. |
Session count |
Number of gRPC sessions. |
Session ID |
ID of a gRPC session. |
User name |
Username of the gRPC user. |
Login time |
Date and time when the gRPC user logged in to the device. |
Idle time |
Amount of time in which the session idle timeout timer will expire. If the value in this field is 0, gRPC sessions will never time out. |
Client IP address |
IP address and port number of the gRPC client. |
Received RPCs |
Number of received gRPC requests. |
Received erroneous RPCs |
Number of received erroneous gRPC requests. |
Received subscription |
Number of received gRPC subscription requests. |
Sent notifications |
Number of gRPC notifications reported to the collector. |
Dial-out mode information |
Information about gRPC in dial-out mode. |
Sensor group count |
Number of sensor groups. |
Sensor path count |
Number of sensor paths. |
Destination group count |
Number of destination groups. |
Destination count |
Number of collectors. |
Subscription count |
Number of subscriptions. |
Subscription |
Name of the subscription. |
Subscription mode |
Supported subscription modes: · gNMI. · non-gNMI. |
Push mode |
Data push mode for the subscription: · Condition-triggered—The device periodically checks each sensor path in a sensor group and pushes the data from the sensor path to collectors if certain conditions are met. · Periodic and Event-triggered—The device pushes data both periodically and when triggering events occur. |
DSCP value |
DSCP value of packets sent to the collector. |
Source-address or interface |
Source IP address or source interface for packets sent to the collector. This field displays not-config if no source IP address or source interface has been specified. |
Telemetry data model |
Telemetry data model architecture for gRPC. Options: · 2-layer—Two-layer telemetry data model architecture. · 3-layer—Three-layer telemetry data model architecture. |
Encoding |
Encoding format for packets sent to the controller. |
Protocol |
Transport protocol: · GRPC. · UDP. |
Compression |
Subscription data compression method: · GZIP—Gzip compression method. This method is supported only when the transport protocol is GRPC. · None—No data compression. |
Sensor group |
Name of the sensor group. |
Sampling interval |
Data sampling interval, in seconds. This field displays 0 for event-triggered sampling. |
Sampling type |
Data sampling type: · Event-triggered—Event-triggered sampling. · Periodic—Periodical sampling. |
Sensor path |
Sensor path. |
Destination-group |
Name of the destination group. |
Start-time |
Date and time when the gRPC connection was established. |
IP:Port |
IP address and port number of the collector (gRPC server). |
VPN |
VPN instance to which the collector belongs. This field displays N/A if the collector belongs to the public network. |
Periodic sampling statistics |
Statistics for periodic sampling. |
Event-triggered statistics |
Statistics for event-triggered sampling. |
Effective count |
Number of effective samplings. This counter does not count a sampling if it does not collect any data. |
Sent successfully |
Number of sent data packets. |
Failed |
Number of data packets failed to be sent. |
Queued packets/Queue size |
Number of data packets in queue and the size of the queue. |
Dropped |
Number of data packets dropped because the queue is full. |
Last error |
Most recent error: · VPN doesn’t exist—The VPN instance did not exist. · PKI failed—An error existed in the PKI domain. For example, the certificate became invalid. · Channel (reason)—An error occurred on the gRPC channel. Possible reasons: ¡ Init—The channel was being initialized. ¡ Idle—The channel was idle. ¡ Connecting—The channel was being established. ¡ Transient failure—The channel was attempting to recover from a transient failure. ¡ Shutdown—The channel was closed because of an issue. This field displays two hyphens (--) if no errors have occurred. |
grpc data-model
Use grpc data-model to specify the architecture of telemetry data models.
Use undo grpc data-model to restore the default.
Syntax
grpc data-model { 2-layer | 3-layer }
undo grpc data-model
Default
The device uses the two-layer telemetry data model architecture to push data.
Views
System view
Predefined user roles
network-admin
Parameters
2-layer: Specifies the two-layer telemetry data model architecture.
3-layer: Specifies the three-layer telemetry data model architecture.
Usage guidelines
This command is available only in gRPC dial-out mode.
If you specify the two-layer telemetry data model, the encoding format for pushed data can only be JSON.
With the three-layer telemetry data model architecture, the device always uses gRPC (TCP) to transport data, even if you have specified UDP as the transport protocol.
Examples
# Configure the device to use three-layer telemetry data models to push data.
<Sysname> system-view
[Sysname] grpc data-model 3-layer
Related commands
encoding
protocol
grpc enable
Use grpc enable to enable the gRPC service.
Use undo grpc enable to disable the gRPC service.
Syntax
grpc enable
undo grpc enable
Default
The gRPC service is disabled.
Views
System view
Predefined user roles
network-admin
Usage guidelines
You must enable the gRPC service before you can configure the gRPC service.
Disabling the gRPC service deletes all gRPC settings.
Examples
# Enable the gRPC service.
<Sysname> system
[Sysname] grpc enable
grpc pki domain
Use grpc pki domain to specify the PKI domain for secure gRPC connections to collectors.
Use undo grpc pki domain to restore the default.
Syntax
grpc pki domain domain-name
undo grpc pki domain
Default
No PKI domain is specified for secure gRPC connections to collectors.
Views
System view
Predefined user roles
network-admin
Parameters
domain-name: Specifies a PKI domain by its name, a case-sensitive string of 1 to 31 characters.
Usage guidelines
By default, the gRPC connection between the device and a collector does not provide data encryption service or require authentication. After you specify a PKI domain, the device and the collector will use TLS for data encryption and bidirectional certificate-based authentication to improve communication security.
For the device to establish gRPC connections to collectors successfully, make sure the PKI domain already exists and has correct certificate and key settings. For more information about PKI configuration, see Security Configuration Guide.
Executing this command reboots the gRPC service and closes all gRPC connections to collectors. In dial-in mode, the collectors must re-initiate the connections. In dial-out mode, the device will automatically re-initiate the connections.
Examples
# Specify the PKI domain for secure gRPC connections to collectors.
<Sysname> system-view
[Sysname] grpc pki domain grpc_test
gRPC dial-in mode commands
grpc idle-timeout
Use grpc idle-timeout to set the gRPC session idle timeout timer.
Use undo grpc idle-timeout to restore the default.
Syntax
grpc idle-timeout minutes
undo grpc idle-timeout
Default
The gRPC session idle timeout timer is 5 minutes.
Views
System view
Predefined user roles
network-admin
Parameters
minutes: Specifies the gRPC session idle timeout timer in minutes, in the range of 0 to 30. To disable gRPC sessions from being timed out, set it to 0.
Usage guidelines
If no gRPC packet exchanges occur on the session between a gRPC and the server before the idle timeout timer expires, the device closes the session.
Examples
# Set the gRPC session idle timeout timer to 6 minutes.
<Sysname> system
[Sysname] grpc idle-timeout 6
grpc log dial-in gnmi
Use grpc log dial-in gnmi to enable gRPC logging for gNMI operations in dial-in mode.
Use undo grpc log dial-in gnmi to disable gRPC logging for gNMI operations in dial-in mode.
Syntax
grpc log dial-in gnmi { all | { capabilities | get | set | subscribe }* }
undo grpc log dial-in gnmi { all | { capabilities | get | set | subscribe }* }
Default
In dial-in mode, gRPC logging is enabled for gNMI Set operations and disabled for other gNMI operations.
Views
System view
Predefined user roles
network-admin
Parameters
all: Specifies all gNMI operations.
capabilities: Specifies the gNMI Capabilities operations.
get: Specifies the gNMI Get operations.
set: Specifies the gNMI Set operations.
subscribe: Specifies the gNMI Subscribe operations.
Usage guidelines
To identify gRPC issues, enable gNMI operations logging in dial-in mode.
This command generates gNMI operation logs in dial-in mode and sends them to the information center. With the information center, you can configure log destinations and output rules. For more information about the information center, see System Management Configuration Guide.
If you execute this command multiple times, the most recent configuration takes effect.
Examples
# Enable gRPC logging for gNMI Get operations in dial-in mode.
<Sysname> system
[Sysname] grpc log dial-in gnmi get
grpc log dial-in rpc
Use grpc log dial-in rpc to enable gRPC logging for RPC operations in dial-in mode.
Use undo grpc log dial-in rpc to disable gRPC logging for RPC operations in dial-in mode.
Syntax
grpc log dial-in rpc { all | { cli | get }* }
undo grpc log dial-in rpc { all | { cli | get }* }
Default
In dial-in mode, gRPC logging is disabled for RPC operations.
Views
System view
Predefined user roles
network-admin
Parameters
all: Specifies both RPC CLI and Get operations.
cli: Specifies the RPC CLI operations.
get: Specifies the RPC Get operations.
Usage guidelines
To identify gRPC issues, enable RPC operations logging in dial-in mode.
This command generates RPC operation logs in dial-in mode and sends them to the information center. With the information center, you can configure log destinations and output rules. For more information about the information center, see System Management Configuration Guide.
If you execute this command multiple times, the most recent configuration takes effect.
Examples
# Enable gRPC logging for RPC Get operations in dial-in mode.
<Sysname> system
[Sysname] grpc log dial-in gnmi get
grpc port
Use grpc port to specify the gRPC service port number.
Use undo grpc port to restore the default.
Syntax
grpc port port-number
undo grpc port
Default
The gRPC service port number is 50051.
Views
System view
Predefined user roles
network-admin
Parameters
port-number: Specifies the gRPC service port number, in the range of 1 to 65535.
Usage guidelines
Changing the gRPC service port number reboots the gRPC service and terminates all gRPC sessions to the gRPC server. If the new port is not available, the system reboots the gRPC service again to use the old port.
Examples
# Set the gRPC service port number to 50052.
<Sysname> system
[Sysname] grpc port 50052
Related commands
grpc enable
grpc compression
Use grpc compression to specify a data compression method for the gRPC server.
Use undo grpc compression to restore the default.
Syntax
grpc compression gzip
undo grpc compression
Default
The gRPC server does not compress the transmitted data.
Views
System view
Predefined user roles
network-admin
Parameters
gzip: Specifies GNU zip (gzip) compression.
Usage guidelines
Application scenarios
Use this feature to reduce network traffic while maintaining data integrity.
Restrictions and guidelines
Changing the data compression method for the gRPC server reboots the gRPC service and disconnects all sessions established between the gRPC server and its gRPC clients. The gRPC clients must reinitiate the sessions.
Examples
# Specify the gzip compression method for the gRPC server.
<Sysname> system
[Sysname] grpc compression gzip
Related commands
grpc enable
grpc server enable
Use grpc server enable to enable the gRPC dial-in mode.
Use undo grpc server enable to disable the gRPC dial-in mode.
Syntax
grpc server enable
undo grpc server enable
Default
The gRPC dial-in mode is enabled.
Views
System view
Predefined user roles
network-admin
Usage guidelines
Application scenarios
Enabling the gRPC service enables both the dial-in mode and dial-out mode. The device enabled with the gRPC service can operate as a gRPC server and a gRPC client simultaneously. If you want the device to operate as a gRPC client only, execute the undo grpc server enable command in system view.
After you disable the gRPC dial-in mode, executing the grpc enable command again does not enable the gRPC dial-in mode.
Prerequisites
You must enable the gRPC service first by using the grpc enable command.
Examples
# Disable the gRPC dial-in mode.
<Sysname> system-view
[Sysname] undo grpc server enable
gRPC dial-out mode commands
destination-group (subscription view)
Use destination-group to specify a destination group for a subscription.
Use undo destination-group to remove a destination group from a subscription.
Syntax
destination-group group-name
undo destination-group group-name
Default
A subscription does not have a destination group.
Views
Subscription view
Predefined user roles
network-admin
Parameters
group-name: Specifies a destination group by its name, a case-sensitive string of 1 to 31 characters.
Usage guidelines
A subscription binds sensor groups to destination groups. Then, the device pushes data from the specified sensors to the collectors.
The specified destination group must have been created by using the destination-group command in telemetry view.
You cannot use a destination group in both a gRPC subscription and a gNMI subscription.
A subscription can have a maximum of five destination groups.
Examples
# Specify destination group collector1 for subscription A.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A
[Sysname-telemetry-subscription-A] destination-group collector1
Related commands
destination-group (telemetry view)
destination-group (telemetry view)
Use destination-group to create a destination group and enter its view, or enter the view of an existing destination group.
Use undo destination-group to delete a destination group.
Syntax
destination-group group-name
undo destination-group group-name
Default
No destination groups exist.
Views
Telemetry view
Predefined user roles
network-admin
Parameters
group-name: Specifies the destination group name, a case-sensitive string of 1 to 31 characters.
Usage guidelines
As a best practice, configure a maximum of five destination groups. If you configure too many destination groups, system performance might degrade.
To delete a destination group that is already used by a subscription, you must remove the destination group from the subscription first.
Examples
# Create a destination group named collector1.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] destination-group collector1
[Sysname-telemetry-destination-group-collector1]
Related commands
destination-group (subscription view)
subscription
dscp
Use dscp to set the DSCP value of packets sent to collectors.
Use undo dscp to restore the default.
Syntax
dscp dscp-value
undo dscp
Default
The DSCP value of packets sent to collectors is 0.
Views
Subscription view
Predefined user roles
network-admin
Parameters
dscp-value: Specifies the DSCP value of packets sent to collectors, in the range of 0 to 63.
Usage guidelines
A greater DSCP value represents a higher priority.
If you execute this command multiple times in the same view, the most recent configuration takes effect.
Examples
# Set the DSCP value of packets sent to collectors to 12 for subscription A.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A
[Sysname-telemetry-subscription-A] dscp 12
encoding
Use encoding to specify the encoding format for pushed data.
Use undo encoding to restore the default.
Syntax
encoding { gpb | json }
undo encoding
Default
The encoding format for pushed data is JSON.
Views
Subscription view
Predefined user roles
network-admin
Parameters
gpb: Specifies the GPB encoding format. This keyword is available only when the device uses the three-layer telemetry data model architecture to push data.
json: Specifies the JSON encoding format.
Usage guidelines
This command is not available for gNMI subscriptions.
The device supports JSON encoding for all data available for subscription. However, it does not support GPB encoding for all data. With GPB encoding, the device will not push data that cannot be GPB encoded. When you choose GPB encoding for a subscription, make sure all data in the subscription can be encoded in GPB.
Examples
# Specify the three-layer architecture for telemetry data models and use GPB to encode data for subscription A.
<Sysname> system-view
[Sysname] grpc data-model 3-layer
[Sysname] telemetry
[Sysname-telemetry] subscrption A
[Sysname-telemetry-subscription-A] encoding gpb
Related commands
grpc data-model
grpc log dial-out
Use grpc log dial-out to enable gRPC logging in dial-out mode.
Use undo grpc log dial-out to disable gRPC logging in dial-out mode.
Syntax
grpc log dial-out { all | { event | sample }* }
undo grpc log dial-out { all | { event | sample }* }
Default
In dial-out mode, gRPC logging is disabled.
Views
System view
Predefined user roles
network-admin
Parameters
all: Specifies all data collection types.
event: Specifies event-triggered data collection.
sample: Specifies periodical data collection.
Usage guidelines
To identify gRPC issues, enable gRPC data collection logging in dial-out mode.
This command generates gRPC data collection logs in dial-out mode and sends them to the information center. With the information center, you can configure log destinations and output rules. For more information about the information center, see System Management Configuration Guide.
gRPC logging in dial-out mode is unavailable for gNMI subscriptions.
If you execute this command multiple times, the most recent configuration takes effect.
Examples
# Enable gRPC logging for periodical data collection in dial-out mode.
<Sysname> system
[Sysname] grpc log dial-in gnmi get
ipv4-address
Use ipv4-address to add an IPv4 collector to a destination group.
Use undo ipv4-address to remove an IPv4 collector from a destination group.
Syntax
ipv4-address ipv4-address [ port port-number ] [ vpn-instance vpn-instance-name ]
undo ipv4-address ipv4-address [ port port-number ] [ vpn-instance vpn-instance-name ]
Default
A destination group does not have IPv4 collectors.
Views
Destination group view
Predefined user roles
network-admin
Parameters
ipv4-address: Specifies the IPv4 address of the collector.
port port-number: Specifies the listening port of the collector, in the range of 1 to 65535. The default is 50051.
vpn-instance vpn-instance-name: Specifies the VPN instance to which the collector belongs. The vpn-instance-name argument is a case-sensitive string of 1 to 31 characters. If the collector belongs to the public network, do not specify this option.
Usage guidelines
To add multiple collectors to a destination group, execute this command multiple times.
One collector must have a different address, port, or VPN instance than the other collectors.
A destination group can have a maximum of five collectors.
To modify the collector configuration for a destination group that is already used by a subscription, you must remove the destination group from the subscription first.
Examples
# Add a collector that uses IPv4 address 192.168.21.21 and the default port number to destination group collector1.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] destination-group collector1
[Sysname-telemetry-destination-group-collector1] ipv4-address 192.168.21.21
Related commands
destination-group (subscription view)
subscription
ipv6-address
Use ipv6-address to add an IPv6 collector to a destination group.
Use undo ipv6-address to remove an IPv6 collector from a destination group.
Syntax
ipv6-address ipv6-address [ port port-number ] [ vpn-instance vpn-instance-name ]
undo ipv6-address ipv6-address [ port port-number ] [ vpn-instance vpn-instance-name ]
Default
A destination group does not have IPv6 collectors.
Views
Destination group view
Predefined user roles
network-admin
Parameters
ipv6-address: Specifies the IPv6 address of the collector. It cannot be an IPv6 link-local address. For more information about IPv6 link-local addresses, see IPv6 basics configuration in Layer 3—IP Services Configuration Guide.
port port-number: Specifies the listening port of the collector, in the range of 1 to 65535. The default is 50051.
vpn-instance vpn-instance-name: Specifies the VPN instance to which the collector belongs. The vpn-instance-name argument is a case-sensitive string of 1 to 31 characters. If the collector belongs to the public network, do not specify this option.
Usage guidelines
To add multiple collectors to a destination group, execute this command multiple times.
One collector must have a different address, port, or VPN instance than the other collectors.
A destination group can have a maximum of five collectors.
To modify the collector configuration for a destination group that is already used by a subscription, you must remove the destination group from the subscription first.
Examples
# Add a collector that uses IPv6 address 1::1 and the default port number to destination group collector1.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] destination-group collector1
[Sysname-telemetry-destination-group-collector1] ipv6-address 1::1
Related commands
destination-group (subscription view)
subscription
json row-timestamp enable
Use json row-timestamp enable to enable per-row time-stamping for JSON-encoded subscription data.
Use undo json row-timestamp enable to restore the default.
Syntax
json row-timestamp enable
undo json row-timestamp enable
Default
The device time-stamps JSON-encoded subscription data on a per-message basis.
Views
Subscription view
Predefined user roles
network-admin
Usage guidelines
For a non-gNMI subscription, you can configure the device to time-stamp JSON-encoded subscription data on a per-message or per-row basis. The following information uses a subscription to the Device module to describe the difference between the options:
· By default, per-message time-stamping is used. The device stamps each subscription response with the system time when they are generated, as shown below:
{"Notification":
{"Timestamp":"1639405006926",
"Device":
{"PhysicalEntities":
{"Entity":
[
{"PhysicalIndex":1,
"Chassis":0,
"Slot":65535,
...
{"PhysicalIndex":2,
"Chassis":0,
"Slot":0,
...
· Per-row time-stamping enables the device to stamp each row of data with the system time when they are collected, as shown below:
{"row":
[{"Timestamp":"1639405006926",
"content":
{"Device":
{"PhysicalEntities":
{"Entity":
[{"PhysicalIndex":1,
"Chassis":0,
"Slot":65535,
...
{"Timestamp":"1639505007890",
"content":
{"Device":
{"PhysicalEntities":
{"Entity":
[{"PhysicalIndex":2,
"Chassis":0,
"Slot":0,
...
Per-row subscription data time-stamping is not available for gNMI subscriptions.
Examples
# Enable per-row time-stamping for the JSON-encoded subscription data pushed for a subscription.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A
[Sysname-telemetry-subscription-A] json row-timestamp enable
protocol
Use protocol to specify a transport protocol and a data compression method for the device to send packets to collectors.
Use undo protocol to restore the default.
Syntax
protocol { grpc [ compression gzip ] | udp }
undo protocol
Default
The device uses gRPC as the transport protocol to send packets to collectors and does not compress the packet data.
Views
Subscription view
Predefined user roles
network-admin
Parameters
grpc: Specifies gRPC as the transport protocol. gRPC uses TCP at the transport layer.
compression: Compresses the packet data. If you do not specify this keyword, the device does not compress the packet data.
gzip: Specifies gzip compression.
udp: Specifies UDP as the transport protocol.
Usage guidelines
If you execute this command multiple times, the most recent configuration takes effect.
For a subscription that has sensor group and destination group bindings, you must first remove all the sensor groups and destination groups from it before you execute this command.
Examples
# Specify UDP as the transport protocol for subscription A.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A
[Sysname-telemetry-subscription-A] protocol udp
# Specify the gRPC transport protocol and gzip compression for subscription A.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A
[Sysname-telemetry-subscription-A] protocol grpc compression gzip
push-mode
Use push-mode to set the data push mode for a subscription.
Use undo push-mode to restore the default.
Syntax
push-mode condition-triggered
undo push-mode
Default
The data push mode for a sensor path in a subscription is periodic or event-triggered.
Views
Subscription view
Predefined user roles
network-admin
Parameters
condition-triggered: Specifies the condition-triggered data push mode. In this mode, the device periodically checks each sensor path in a sensor group and pushes the data from the sensor path to collectors if certain conditions are met.
Usage guidelines
This command is available only for gNMI subscriptions.
As a best practice, use condition-triggered data push mode only if a sensor group has condition-triggered sensor groups.
For information about condition-triggered sensor paths, the sensor path check interval, and data push conditions, contact H3C Support.
Example
# Set the data push mode to condition-triggered for gNMI subscription A.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A gnmi
[Sysname-telemetry-subscription-A] push-mode condition-triggered
Related commands
subscription
sensor path
Use sensor path to configure a sensor path.
Use undo sensor path to delete a sensor path.
Syntax
For gNMI subscriptions:
sensor path path
undo sensor path path
For non-gNMI subscriptions:
sensor path path [ selection-nodes node-list | depth depth ]
sensor path path [ event-condition conditions ]
undo sensor path path [ event-condition conditions ]
Default
No sensor paths exist.
Views
Sensor group view
Predefined user roles
network-admin
Parameters
path: Specifies a data path. For information about the available paths, enter a question mark (?) in the position of this argument.
selection-nodes: Pushes data from nodes in the specified data path. If you do not specify this keyword, the device pushes data from all nodes in the specified data path.
node-list: Specifies a space-separated list of up to 24 nodes by their names. To view available nodes in the sensor path, enter a question mark (?) in the position of this argument. For more information about path nodes, see the Columns sections in the NETCONF XML API references of the related module.
depth depth: Specifies the retrieval level for the sensor path. This option takes effect if the sensor path is a periodic path. The value range for the depth is 1 to 3. The default depth is 1.
· If the depth is set to 1, the device collects data from all columns under the specified path.
· If the depth is set to 2, the device collects data from all columns and subtables under the specified path.
· If the depth is set to 3, the device collects data from all columns, subtables, and subtables under the subtables, under the specified path.
event-condition: Specifies the data pushing conditions. This keyword is supported only for an event-triggered sensor path. If you do not specify this keyword, no data pushing conditions are applied.
conditions: Specifies a maximum of five condition expressions in the following format: {and|or}(operator1(node1,value1),[operator2(node2,value2)],…). To specify only one condition expression, use the operator(node,value) format. No extra spaces are allowed.
· and—The conditions must be all met.
· or—Only one of the conditions must be met.
· operator—Comparison operator. Supported operators vary by node. The following are all possible operators:
¡ eq—Equal to.
¡ ge—Greater than or equal to.
¡ gt—Greater than.
¡ le—Less than or equal to.
¡ lt—Less than.
¡ ne—Not equal to.
· node—Node name, a case-insensitive string. For information about nodes for sensor paths of service modules, see NETCONF XML API Event Reference.
· value—Reference value, a case-sensitive string. To specify a string type value, use double quotation marks (") to quote the value. For information about the value ranges, see NETCONF XML API Event Reference.
Usage guidelines
Follow these restrictions and guidelines when you configure a sensor path in a gNMI subscription:
· To push only a subset of data from a sensor path, add filters in [column="value"] format in that sensor path. The column argument represents a column in a multi-instance table, which is case insensitive. The value argument represents the column value, which is case sensitive.
For more information about the multi-instance tables for a module, see the NETCONF XML API references for that module. To identify the value ranges for columns, see the Columns section in the API references.
· You can add sensor path entries that have the same sensor path but different filtering conditions. For example, the following commands specify different path entries:
¡ sensor path interfaces/interface/subinterfaces/subinterface[index="2"]/config
¡ sensor path interfaces/interface/subinterfaces/subinterface[index="3"]/config
In a non-gNMI subscription, you can include filters in sensor path ifmgr/statistics to match data you need to push to collectors. The device pushes data from the sensor path to collectors as long as one of the filters has matching data.
· Do not specify both data paths and filters for this sensor path.
· Use the [ifindex="index"] format to specify a filter. The index is a case-insensitive string that represents the type and number or index of an interface.
· The last character for index can be wildcard character (*), for example, you can specify sensor path ifmgr/statistics[ifindex="GigabitEthernet1/0/*"].
· You can specify a maximum of 64 filters in a sensor path.
To configure multiple sensor paths, repeat this command. If you execute this command with the same sensor path specified, the most recent configuration takes effect.
The device supports a maximum of 128 sensor paths.
To modify the sensor path configuration for a sensor group that is already used by a subscription, you must remove the sensor group from the subscription first.
Examples
# Configure sensor path ifmgr/devicecapabilities/ for non-gNMI sensor group test.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] sensor-group test
[Sysname-telemetry-sensor-group-test] sensor path ifmgr/devicecapabilities/
# Configure event-triggered sensor path syslog/logevent for non-gNMI sensor group test and configure the following data pushing conditions for the sensor path:
· The Group node name is OSPF or BGP.
· The Severity node is equal to 1.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] sensor-group test
[Sysname-telemetry-sensor-group-test] sensor path syslog/logevent event-condition or(eq(group,”OSPF”),eq(group,”BGP”),eq(severity,1))
Related commands
sensor-group (subscription view)
subscription
sensor-group (subscription view)
Use sensor-group to specify a sensor group for a subscription.
Use undo sensor-group to remove a sensor group from a subscription.
Syntax
sensor-group group-name [ sample-interval [ msec ] interval | suppress-time suppress-time ]
undo sensor-group group-name
Default
A subscription does not have a sensor group.
Views
Subscription view
Predefined user roles
network-admin
Parameters
group-name: Specifies a sensor group by its name, a case-sensitive string of 1 to 31 characters.
sample-interval: Specifies that the sensor group collects and pushes data at intervals. If you do not specify this keyword, the sensor group collects and pushes data only when triggered by events.
msec: Specifies the data push interval in milliseconds. To set the data push interval in seconds, do not specify this keyword. This keyword is available only for non-gNMI subscription.
interval: Specifies the data push interval. The value range for this argument differs depending on the unit of interval measurement.
· If you do not specify the msec keyword, the value range is 1 to 86400.
· If you specify the msec keyword, the data push interval must be a multiple of 100 in the range of 100 to 900.
suppress-time suppress-time: Specifies the data push suppression interval in seconds. During the data push suppression interval, the device does not push the data from a sensor path even though conditions are met. The value range for the argument is 1 to 300, and the default is 60. This parameter is available only for gNMI subscriptions with condition-triggered data push mode enabled by using the push-mode condition-triggered command.
Usage guidelines
For the device to correctly push data from sensor paths in a sensor group, make sure the subscription settings for the sensor paths are compliant with Table 3.
Table 3 Compatibility of sensor path types and subscription settings
Sensor path type |
Push mode |
Data push interval |
Data push suppression interval |
Periodical |
Default |
Configured |
Not configured |
Event-triggered |
Default |
Not configured |
Not configured |
Condition-triggered |
Condition-triggered |
Not configured |
Configured |
The specified sensor group must have been created by using the sensor-group command in telemetry view.
For a gNMI subscription, you must specify gNMI sensor groups. For a non-gNMI subscription, you must specify non-gNMI sensor groups.
To change the data collection interval for a subscription for which you have specified a sensor group, you must first remove the sensor group in subscription view.
Examples
# Specify sensor group test for subscription A. Set the data collection interval to 10 seconds.
<Sysname> system-view
[Sysname] telemetry
[Device-telemetry] subscription A
[Device-telemetry-subscription-A] sensor-group test sample-interval 10
Related commands
push-mode
sensor path
sensor-group (telemetry view)
sensor-group (telemetry view)
Use sensor-group to create a sensor group and enter its view, or enter the view of an existing sensor group.
Use undo sensor-group to delete a sensor group.
Syntax
sensor-group group-name [ gnmi ]
undo sensor-group group-name
Default
No sensor groups exist.
Views
Telemetry view
Predefined user roles
network-admin
Parameters
group-name: Specifies the sensor group name, a case-sensitive string of 1 to 31 characters.
gnmi: Specifies a gNMI sensor group. If you do not specify this keyword, this command creates a non-gNMI sensor group.
Usage guidelines
When you enter the view of an existing gNMI sensor group, you do not need to specify the gnmi keyword.
The device supports a maximum of 32 sensor groups.
To delete a sensor group that is already used by a subscription, you must remove the sensor group from the subscription first.
Examples
# Create a non-gNMI sensor group named test.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] sensor-group test
[Sysname-telemetry-sensor-group-test]
Related commands
sensor-group (subscription view)
subscription
source-address
Use source-address to specify the source IP address for packets sent to collectors.
Use undo source-address to restore the default.
Syntax
source-address { ipv4-address | interface interface-type interface-number | ipv6 ipv6-address } [ port port-number ]
undo source-address
Default
The device uses the primary IPv4 address of the output interface for the route to the collectors as the source address.
Views
Subscription view
Predefined user roles
network-admin
Parameters
ipv4-address: Specifies an IPv4 address.
interface interface-type interface-number: Specifies an interface by its type and number. In the current software version, you must specify a loopback interface. The device will use the interface's primary IPv4 address as the source address. If the interface does not have a primary IPv4 address, the device uses the primary IPv4 address of the output interface for the route to the collectors.
ipv6 ipv6-address: Specifies an IPv6 address.
port port-number: Specifies a source port number for subscription packets sent by the device, in the range of 1 to 65535. If you do not specify a source port number, the device uses a port number automatically assigned by the system as the source port number.
Usage guidelines
If you execute this command multiple times, the most recent configuration takes effect.
Changing the source address causes the device to reconnect to the gRPC server.
For a subscription that has sensor group and destination group bindings, you must first remove all the sensor groups and destination groups from it before you execute this command.
Examples
# Specify the source IPv4 address of 169.254.1.1 for packets sent to collectors.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A
[Sysname-telemetry-subscription-A] source-address 169.254.1.1
subscription
Use subscription to create a subscription and enter its view, or enter the view of an existing subscription.
Use undo sensor-group to delete a subscription.
Syntax
subscription subscription-name [ gnmi ]
undo subscription subscription-name
Default
No subscription exists.
Views
Telemetry view
Predefined user roles
network-admin
Parameters
subscription-name: Specifies the subscription name, a case-sensitive string of 1 to 31 characters.
gnmi: Specifies a gNMI subscription. If you do not specify this keyword, this command creates a non-gNMI subscription.
Usage guidelines
When you enter the view for an existing gNMI subscription, you do not need to specify the gnmi keyword.
The device supports a maximum of 10 subscriptions.
Examples
# Configure a non-gNMI subscription named A.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry] subscription A
[Sysname-telemetry-subscription-A]
Related commands
destination-group (subscription view)
sensor-group (subscription view)
telemetry
Use telemetry to enter telemetry view.
Syntax
telemetry
Views
System view
Predefined user roles
network-admin
Usage guidelines
In telemetry view, you can configure telemetry parameters.
Examples
# Enter telemetry view.
<Sysname> system-view
[Sysname] telemetry
[Sysname-telemetry]