Core Components of Model-driven Telemetry Streaming
The core components used in streaming model-driven telemetry data are:
A telemetry session can be initiated using:
In a dial-out mode,
the router dials out to the receiver. This is the default mode of operation.
The router acts as a client and receiver acts as a server. In this mode,
sensor-paths and destinations are configured and bound together into one or
more subscriptions. The router continually attempts to establish a session with
each destination in the subscription, and streams data to the receiver. The
dial-out mode of subscriptions is persistent. When a session terminates, the
router continually attempts to re-establish a new session with the receiver for
every 30 seconds.
The sensor path
describes a YANG path or a subset of data definitions in a YANG model with a
container. In a YANG model, the sensor path can be specified to end at any
level in the container hierarchy.
device, such as a router, associates the sensor path to the nearest container
path in the model. The router encodes and streams the container path within a
single telemetry message. A receiver receives data about all the containers and
leaf nodes at and below this container path.
The router streams telemetry data for one or more sensor-paths, at the configured frequency (cadence-based streaming) to one or more receivers through subscribed sessions.
A subscription binds one or more sensor paths and destinations. An MDT-capable device streams data for each sensor path at the configured frequency (cadence-based streaming) to the destination.
The router streams
telemetry data using a transport mechanism. The generated data is encapsulated
into the desired format using encoders.
Telemetry (MDT) data is streamed through
The data to be streamed can be encoded into Google Protocol Buffers (GPB) encoding. In GPB, the encoding can either be compact GPB (for optimising the network bandwidth usage) or self-describing GPB. The encodings supported are:
GPB encoding: configuring for GPB encoding requires metadata in the form of compiled .proto files. A .proto file describes the GPB message format, which is used to stream data. The .proto files are available at https://github.com/cisco/bigmuddy-network-telemetry-proto/tree/master/proto_archive.
Compact GPB encoding: data is streamed in compressed and non self-describing format. A .proto file corresponding to each sensor-path must be used by the receiver to decode the streamed data.
Key-value (KV-GPB) encoding: data of each sensor path streamed is in a self-describing formatted ASCII text. A single .proto file telemetry.proto is used by the receiver to decode any sensor path data. Because the key names are included in the streamed data, the data on the wire is much larger as compared to compact GPB encoding.