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
- 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
gnmiccan 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
gnmiccan be deployed as a gNMI collector with an embedded tunnel server.
- gNMI data manipulation
gnmiccollector has data transformation capabilities that can be used to adapt the collected data to your specific use case.
- Dynamic targets loading
gnmicsupport target loading at runtime based on input from external systems.
- YANG-based path suggestions
Your CLI magically becomes a YANG browser when
gnmicis 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
prototextoutput 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
gnimcworks, our documentation site has you covered.
Quick start guide
bash -c "$(curl -sL https://get-gnmic.kmrd.dev)"
gnmic -a 10.1.0.11:57400 -u admin -p admin --insecure capabilities
gnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \ get --path /state/system/platform
gnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \ set --update-path /configure/system/name \ --update-value gnmic_demo
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"
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