Skip to content

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.