network-analytics / mdt-dialout-collector

Model-Driven Telemetry - Collecting <multi-vendor> metrics via gRPC dialout
MIT License
28 stars 8 forks source link
c cisco cpp grpc huawei juniper mdt openconfig protocol-buffers telemetry yang

Build status

Table of Content

Introduction

mdt-dialout-collector & gRPC dial-out libraries are leveraging the gRPC Framework to implement a multi-vendor gRPC Dial-out collector. The doc/Changelog file is including additional details about the supported network devices.

The collector functionalities can be logically grouped into three categories:

  1. Data Collection - they are steering the daemon(s) behavior.
  2. Data Manipulation - they are conveniently transforming the in-transit data-stream.
  3. Data Delivery - they are inter-connecting the collector with the next stage in the pipeline.

The doc/CONFIG-KEYS file is including the description for each one of the available options.

Deployment options

The gRPC dial-out data-collection functionality can be deployed in two ways:

Standalone binary with mdt-dialout-collector

              +------------------------------------------------------+
+---------+   | +------------+   +--------------+   +--------------+ |   +---------+
| network |-->| | collection |-->| manipulation |-->| kafka client | |-->| kafka   |
+---------+   | +------------+   +--------------+   +--------------+ |   | cluster |
              |              [mdt-dialout-collector]                 |   +---------+
              +------------------------------------------------------+

the building process is generating a single binary:

/opt/mdt-dialout-collector/bin/mdt_dialout_collector

which, by default, is reading the running options from:

/etc/opt/mdt-dialout-collector/mdt_dialout_collector.conf

Additionally, the default configuration file can be further specified via the following command line:

/opt/mdt-dialout-collector/bin/mdt_dialout_collector -f <file.conf>

Library/Header integration with pmtelemetryd

              +---------------------------------------------------------+
+---------+   | +------------+   +--------------+   +-----------------+ |   +------------+
| network |-->| | collection |-->| manipulation |-->| ZMQ (PUSH/PULL) | |-->| pipeline   |
+---------+   | +------------+   +--------------+   +-----------------+ |   | next stage |
              |                    [pmtelemetryd]                       |   +------------+
              +---------------------------------------------------------+

the building process is generating both the library and the header file required to build pmtelemetryd with gRPC dial-out support:

/usr/local/lib/libgrpc_collector.la

/usr/local/include/grpc_collector_bridge/grpc_collector_bridge.h

there is one main pmtelemetryd CONFIG-KEYS which is mandatory in order to enable the embedded gRPC dial-out collector:

KEY:     telemetry_daemon_grpc_collector_conf
DESC:    Points to a file containing the configuration of the gRPC collector thread. An
         example of the configuration plus all available config keys is available here:
         https://github.com/network-analytics/mdt-dialout-collector
DEFAULT: none

Build/Install

install.sh is automating the build/install process, taking care of all dependencies.

References