Introduction
gnmic
supports various Inputs to consume gnmi data, transform it and ultimately export it to one or multiple Outputs.
The purpose of gnmic
's Inputs is to build a gnmi data pipeline by enabling the ingestion and export of gnmi data that was exported by gnmic
's outputs upstream.
Currently supported input types:
Defining Inputs and matching Outputs#
To define an Input a user needs to fill in the inputs
section in the configuration file.
Each Input is defined by its name (input1
in the example below), a type
field which determines the type of input to be created (nats
, stan
, kafka
) and various other configuration fields which depend on the Input type.
Note
Inputs names are case insensitive
All Input types have an outputs
field, under which the user can defined the downstream destination(s) of the consumed data. This way, data consumed once, can be exported multiple times.
Info
The same gnmic
instance can act as gNMI collector, input and output simultaneously.
Example:
# part of gnmic config file
inputs:
input1:
type: nats # input type
#
# other config fields depending on the input type
#
outputs:
- output1
- output2
Inputs use cases#
Clustering#
Using gnmic
Inputs, the user can aggregate all the collected data into one instance of gnmic
that can make it available to a downstream off the shelf tool,typically Prometheus.
Data reuse#
Collect data once and use it multiple times. By chaining multiple instances of gnmic
the user can process the same stream of data in different ways.
A different set of event processors can be applied on the data stream before being exported to its intended outputs.