• Stars
    star
    176
  • Rank 216,939 (Top 5 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 2 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

gNMIc is a gNMI CLI client and collector

github release Github all releases Go Report Doc build


gnmic (pronoun.: gee·en·em·eye·see) is a gNMI CLI client that provides full support for Capabilities, Get, Set and Subscribe RPCs with collector capabilities.

Documentation available at https://gnmic.openconfig.net

Features

  • Full support for gNMI RPCs
    Every gNMI RPC has a corresponding command with all of the RPC options configurable by means of the local and global flags.
  • Flexible collector deployment
    gnmic can be deployed as a gNMI collector that supports multiple output types (NATS, Kafka, Prometheus, InfluxDB,...).
    The collector can be deployed either as a single instance, as part of a cluster, or used to form data pipelines.
  • Support gRPC tunnel based dialout telemetry
    gnmic can be deployed as a gNMI collector with an embedded tunnel server.
  • gNMI data manipulation
    gnmic collector has data transformation capabilities that can be used to adapt the collected data to your specific use case.
  • Dynamic targets loading
    gnmic support target loading at runtime based on input from external systems.
  • YANG-based path suggestions
    Your CLI magically becomes a YANG browser when gnmic is executed in prompt mode. In this mode the flags that take XPATH values will get auto-suggestions based on the provided YANG modules. In other words - voodoo magic 🤯
  • Multi-target operations
    Commands can operate on multiple gNMI targets for bulk configuration/retrieval/subscription.
  • Multiple configuration sources
    gnmic supports flags, environment variables as well as file based configurations.
  • Inspect raw gNMI messages
    With the prototext output format you can see the actual gNMI messages being sent/received. Its like having a gNMI looking glass!
  • (In)secure gRPC connection
    gNMI client supports both TLS and non-TLS transports so you can start using it in a lab environment without having to care about the PKI.
  • Dial-out telemetry
    The dial-out telemetry server is provided for Nokia SR OS.
  • Pre-built multi-platform binaries
    Statically linked binaries made in our release pipeline are available for major operating systems and architectures. Making installation a breeze!
  • Extensive and friendly documentation
    You won't be in need to dive into the source code to understand how gnmic works, our documentation site has you covered.

Quick start guide

Installation

bash -c "$(curl -sL https://get-gnmic.openconfig.net)"

Capabilities request

gnmic -a 10.1.0.11:57400 -u admin -p admin --insecure capabilities

Get request

gnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \
      get --path /state/system/platform

Set request

gnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \
      set --update-path /configure/system/name \
          --update-value gnmic_demo

Subscribe request

gnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \
      sub --path "/state/port[port-id=1/1/c1/1]/statistics/in-packets"

Prompt mode

The prompt mode is an interactive mode of the gnmic CLI client for user convenience.

# clone repository with YANG models (Openconfig example)
git clone https://github.com/openconfig/public
cd public

# Start gnmic in prompt mode and read in all the modules:

gnmic --file release/models \
      --dir third_party \
      --exclude ietf-interfaces \
      prompt

More Repositories

1

public

Repository for publishing OpenConfig models, documentation, and other material for the community.
Shell
830
star
2

gnmi

gRPC Network Management Interface
Go
396
star
3

ygot

A YANG-centric Go toolkit - Go/Protobuf Code Generation; Validation; Marshaling/Unmarshaling
Go
251
star
4

kne

Go
214
star
5

goyang

YANG parser and compiler to produce Go language objects
Go
211
star
6

reference

This repository contains reference implementations, specifications and tooling related to OpenConfig-based network management.
Python
146
star
7

gnoi

gRPC Network Operations Interface (gNOI) defines a set of gRPC-based microservices for executing operational commands on network devices.
Starlark
141
star
8

gnmi-gateway

A modular, distributed, and highly available service for modern network telemetry via OpenConfig and gNMI
Go
120
star
9

grpctunnel

A TCP-over-gRPC Tunnel
Go
60
star
10

gribi

A gRPC Interface to a Network Element RIB.
Shell
49
star
11

featureprofiles

Feature Profiles are groups of OpenConfig paths and tests which verify their behavior
Go
49
star
12

ondatra

Go
38
star
13

oc-pyang

OpenConfig plugins for the pyang validator
Python
31
star
14

lemming

An OpenConfig reference device implementation
Go
30
star
15

bootz

OpenConfig network device bootstrap APIs and services
Go
16
star
16

gnmitest

Test framework for gNMI
Go
14
star
17

hercules

Published data models for the Hercules vendor-agnostic SDN switch
Go
12
star
18

gnsi

HTML
12
star
19

gribigo

Go implementation of gRIBI.
Go
11
star
20

gnpsi

C++
11
star
21

attestz

API for TPM attestation and enrollment for certificates
Go
8
star
22

ygnmi

A Go gNMI client library based on ygot-generated code
Go
7
star
23

lsdbparse

An IS-IS LSP to OpenConfig Schema Library
Go
4
star
24

magna

Go
4
star
25

containerz

containerz is a reference implementation for the containerz gNOI service.
Go
2
star
26

ovgs

API for accessing ownership voucher artifacts for bootstrapping network devices
Shell
2
star
27

catalog-server

Go
1
star
28

replayer

A replay tool for g* (gNMI, gRIBI, gNOI... events).
Go
1
star
29

models-ci

Continuous integration for OpenConfig models.
Go
1
star