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.kmrd.dev
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.kmrd.dev)"
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