{"id":21147473,"url":"https://github.com/openconfig/gnmic","last_synced_at":"2025-05-15T20:06:20.964Z","repository":{"id":61157662,"uuid":"523056493","full_name":"openconfig/gnmic","owner":"openconfig","description":"gNMIc is a gNMI CLI client and collector","archived":false,"fork":false,"pushed_at":"2025-05-01T17:37:02.000Z","size":8245,"stargazers_count":227,"open_issues_count":72,"forks_count":69,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-05-01T18:38:28.029Z","etag":null,"topics":["gnmi","telemetry"],"latest_commit_sha":null,"homepage":"https://gnmic.openconfig.net","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openconfig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-08-09T17:59:02.000Z","updated_at":"2025-05-01T17:37:06.000Z","dependencies_parsed_at":"2023-11-11T20:25:50.731Z","dependency_job_id":"9d918e4a-296f-4cc3-9463-cacfcad32789","html_url":"https://github.com/openconfig/gnmic","commit_stats":{"total_commits":1628,"total_committers":22,"mean_commits":74.0,"dds":"0.14864864864864868","last_synced_commit":"118f8510227241862f3915337e99e8ab2f08df09"},"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openconfig%2Fgnmic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openconfig%2Fgnmic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openconfig%2Fgnmic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openconfig%2Fgnmic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openconfig","download_url":"https://codeload.github.com/openconfig/gnmic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414499,"owners_count":22067272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gnmi","telemetry"],"created_at":"2024-11-20T09:02:53.308Z","updated_at":"2025-05-15T20:06:15.880Z","avatar_url":"https://github.com/openconfig.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=center\u003e\u003cimg src=docs/images/gnmic-headline.svg?sanitize=true/\u003e\u003c/p\u003e\n\n[![github release](https://img.shields.io/github/release/openconfig/gnmic.svg?style=flat-square\u0026color=00c9ff\u0026labelColor=bec8d2)](https://github.com/openconfig/gnmic/releases/)\n[![Github all releases](https://img.shields.io/github/downloads/openconfig/gnmic/total.svg?style=flat-square\u0026color=00c9ff\u0026labelColor=bec8d2)](https://github.com/openconfig/gnmic/releases/)\n[![Go Report](https://img.shields.io/badge/go%20report-A%2B-blue?style=flat-square\u0026color=00c9ff\u0026labelColor=bec8d2)](https://goreportcard.com/report/github.com/openconfig/gnmic)\n[![Doc](https://img.shields.io/badge/Docs-gnmic.openconfig.net-blue?style=flat-square\u0026color=00c9ff\u0026labelColor=bec8d2)](https://gnmic.openconfig.net)\n[![build](https://img.shields.io/github/actions/workflow/status/openconfig/gnmic/test.yml?branch=main\u0026style=flat-square\u0026labelColor=bec8d2)](https://github.com/openconfig/gnmic/releases/)\n\n---\n\n`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.\n\nDocumentation available at [https://gnmic.openconfig.net](https://gnmic.openconfig.net)\n\n## Features\n\n* **Full support for gNMI RPCs**  \n  Every gNMI RPC has a [corresponding command](https://gnmic.openconfig.net/basic_usage/) with all of the RPC options configurable by means of the local and global flags.\n* **Flexible collector deployment**  \n  `gnmic` can be deployed as a gNMI collector that supports multiple output types ([NATS](https://gnmic.openconfig.net/user_guide/outputs/nats_output/), [Kafka](https://gnmic.openconfig.net/user_guide/outputs/kafka_output/), [Prometheus](https://gnmic.openconfig.net/user_guide/outputs/prometheus_output/), [InfluxDB](https://gnmic.openconfig.net/user_guide/outputs/influxdb_output/),...).  \n  The collector can be deployed either as a [single instance](https://gnmic.openconfig.net/deployments/deployments_intro/#single-instance), as part of a [cluster](https://gnmic.openconfig.net/user_guide/HA/), or used to form [data pipelines](https://gnmic.openconfig.net/deployments/deployments_intro/#pipelines).\n* **Support gRPC tunnel based dialout telemetry**  \n  `gnmic` can be deployed as a gNMI collector with an [embedded tunnel server](https://gnmic.openconfig.net/user_guide/tunnel_server/).\n* **gNMI data manipulation**  \n  `gnmic` collector has [data transformation](https://gnmic.openconfig.net/user_guide/event_processors/intro/) capabilities that can be used to adapt the collected data to your specific use case.\n* **Dynamic targets loading**  \n  `gnmic` support [target loading at runtime](https://gnmic.openconfig.net/user_guide/targets/target_discovery/discovery_intro/) based on input from external systems.\n* **YANG-based path suggestions**  \n  Your CLI magically becomes a YANG browser when `gnmic` is executed in [prompt](https://gnmic.openconfig.net/user_guide/prompt_suggestions/) 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 :exploding_head:\n* **Multi-target operations**  \n  Commands can operate on [multiple gNMI targets](https://gnmic.openconfig.net/user_guide/targets/) for bulk configuration/retrieval/subscription.\n* **Multiple configuration sources**  \n  gnmic supports [flags](https://gnmic.openconfig.net/user_guide/configuration_flags), [environment variables](https://gnmic.openconfig.net/user_guide/configuration_env/) as well as [file based]((https://gnmic.openconfig.net/user_guide/configuration_file/)) configurations.\n* **Inspect raw gNMI messages**  \n  With the `prototext` output format you can see the actual gNMI messages being sent/received. Its like having a gNMI looking glass!\n* **(In)secure gRPC connection**  \n  gNMI client supports both TLS and [non-TLS](https://gnmic.openconfig.net/global_flags/#insecure) transports so you can start using it in a lab environment without having to care about the PKI.\n* **Dial-out telemetry**  \n  The [dial-out telemetry server](https://gnmic.openconfig.net/cmd/listen/) is provided for Nokia SR OS.\n* **Pre-built multi-platform binaries**  \n  Statically linked [binaries](https://github.com/openconfig/gnmic/releases) made in our release pipeline are available for major operating systems and architectures. Making [installation](https://gnmic.openconfig.net/install/) a breeze!\n* **Extensive and friendly documentation**  \n  You won't be in need to dive into the source code to understand how `gnmic` works, our [documentation site](https://gnmic.openconfig.net) has you covered.\n\n## Quick start guide\n\n### Installation\n\n```\nbash -c \"$(curl -sL https://get-gnmic.openconfig.net)\"\n```\n\n### Capabilities request\n\n```\ngnmic -a 10.1.0.11:57400 -u admin -p admin --insecure capabilities\n```\n\n### Get request\n\n```\ngnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \\\n      get --path /state/system/platform\n```\n\n### Set request\n\n```\ngnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \\\n      set --update-path /configure/system/name \\\n          --update-value gnmic_demo\n```\n\n### Subscribe request\n\n```\ngnmic -a 10.1.0.11:57400 -u admin -p admin --insecure \\\n      sub --path \"/state/port[port-id=1/1/c1/1]/statistics/in-packets\"\n```\n\n### Prompt mode\n\nThe [prompt mode](https://gnmic.openconfig.net/user_guide/prompt_suggestions/) is an interactive mode of the gnmic CLI client for user convenience.\n\n```bash\n# clone repository with YANG models (Openconfig example)\ngit clone https://github.com/openconfig/public\ncd public\n\n# Start gnmic in prompt mode and read in all the modules:\n\ngnmic --file release/models \\\n      --dir third_party \\\n      --exclude ietf-interfaces \\\n      prompt\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenconfig%2Fgnmic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenconfig%2Fgnmic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenconfig%2Fgnmic/lists"}