Add gnmic as a Docker container node in the Containerlab topology file
Mount gnmic YAML config via a volume
Configure gNMI targets pointing to all Arista EOS nodes (port 6030)
Handle TLS (--skip-verify acceptable in lab context)
Validate gnmic successfully subscribes and collects data from all devices
Configure gnmic Prometheus exporter output
- Add gnmic as a Docker container node in the Containerlab topology file
- Mount gnmic YAML config via a volume
- Configure gNMI targets pointing to all Arista EOS nodes (port `6030`)
- Handle TLS (`--skip-verify` acceptable in lab context)
- Validate gnmic successfully subscribes and collects data from all devices
- Configure gnmic Prometheus exporter output
Added gnmic (ghcr.io/openconfig/gnmic:0.46.0) as a linux kind node in evpn-lab.clab.yml, mgmt IP 172.16.0.70, config mounted read-only from configs/gnmic/gnmic-config.yml.
Configured gNMI targets for all 28 arista_ceos nodes (DC, Core, Campus) on port 6030, subscribing to interface oper-status/counters and BGP neighbor state (10s sample interval).
Prometheus exporter output on :9273.
README updated (management IP table, new "Telemetry" section, repo structure tree).
Deviation from the TLS instruction: these cEOS nodes run management api gnmi with transport grpc default and no SSL profile configured, so gNMI is served in plaintext, not TLS. skip-verify: true caused a TLS handshake failure against the plaintext port. Used insecure: true instead, which matches the current EOS config. Confirmed with the repo owner — keeping insecure: true for now instead of adding self-signed SSL profiles across all 28 EOS configs.
Validation: deployed gnmic + dc-leaf1 only (containerlab deploy --node-filter gnmic,dc-leaf1), confirmed via docker logs that gnmic subscribed successfully with no errors, and confirmed live metrics on the Prometheus exporter (interfaces_interface_state_counters_*, network_instances_..._bgp_neighbors_neighbor_state_* tagged source="dc-leaf1"). Test deployment torn down cleanly afterward (containerlab destroy --cleanup).
Ready to commit.
Implemented and validated:
- Added `gnmic` (`ghcr.io/openconfig/gnmic:0.46.0`) as a `linux` kind node in `evpn-lab.clab.yml`, mgmt IP `172.16.0.70`, config mounted read-only from `configs/gnmic/gnmic-config.yml`.
- Configured gNMI targets for all 28 `arista_ceos` nodes (DC, Core, Campus) on port `6030`, subscribing to interface oper-status/counters and BGP neighbor state (10s sample interval).
- Prometheus exporter output on `:9273`.
- README updated (management IP table, new "Telemetry" section, repo structure tree).
**Deviation from the TLS instruction**: these cEOS nodes run `management api gnmi` with `transport grpc default` and **no SSL profile configured**, so gNMI is served in plaintext, not TLS. `skip-verify: true` caused a TLS handshake failure against the plaintext port. Used `insecure: true` instead, which matches the current EOS config. Confirmed with the repo owner — keeping `insecure: true` for now instead of adding self-signed SSL profiles across all 28 EOS configs.
**Validation**: deployed `gnmic` + `dc-leaf1` only (`containerlab deploy --node-filter gnmic,dc-leaf1`), confirmed via `docker logs` that gnmic subscribed successfully with no errors, and confirmed live metrics on the Prometheus exporter (`interfaces_interface_state_counters_*`, `network_instances_..._bgp_neighbors_neighbor_state_*` tagged `source="dc-leaf1"`). Test deployment torn down cleanly afterward (`containerlab destroy --cleanup`).
Ready to commit.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
6030)--skip-verifyacceptable in lab context)Implemented and validated:
gnmic(ghcr.io/openconfig/gnmic:0.46.0) as alinuxkind node inevpn-lab.clab.yml, mgmt IP172.16.0.70, config mounted read-only fromconfigs/gnmic/gnmic-config.yml.arista_ceosnodes (DC, Core, Campus) on port6030, subscribing to interface oper-status/counters and BGP neighbor state (10s sample interval).:9273.Deviation from the TLS instruction: these cEOS nodes run
management api gnmiwithtransport grpc defaultand no SSL profile configured, so gNMI is served in plaintext, not TLS.skip-verify: truecaused a TLS handshake failure against the plaintext port. Usedinsecure: trueinstead, which matches the current EOS config. Confirmed with the repo owner — keepinginsecure: truefor now instead of adding self-signed SSL profiles across all 28 EOS configs.Validation: deployed
gnmic+dc-leaf1only (containerlab deploy --node-filter gnmic,dc-leaf1), confirmed viadocker logsthat gnmic subscribed successfully with no errors, and confirmed live metrics on the Prometheus exporter (interfaces_interface_state_counters_*,network_instances_..._bgp_neighbors_neighbor_state_*taggedsource="dc-leaf1"). Test deployment torn down cleanly afterward (containerlab destroy --cleanup).Ready to commit.