fix(gnmic): rewrite config with correct parameters and simplified paths

- Remove invalid 'add-target: target' (must be overwrite|if-not-present|empty)
- Enable debug mode for troubleshooting
- Simplify interface paths to /interfaces/interface/state (Arista compatible)
- Simplify system paths to /system/state
- Remove complex BGP path that may not work on cEOS
- Add retry and timeout parameters for reliability
- Add expiration to prevent stale metrics
- Add skip-verify for insecure connections
- Increase sample intervals for stability
This commit is contained in:
2025-12-16 14:19:39 +00:00
parent d01598f9ce
commit 5fdf374fa4

View File

@@ -1,166 +1,194 @@
# gnmic configuration for Arista EVPN-VXLAN fabric # gNMIc configuration for Arista EVPN-VXLAN fabric
# Collects gNMI telemetry and exposes Prometheus metrics # Collects gNMI telemetry and exposes Prometheus metrics
#
# Usage:
# gnmic subscribe --config /path/to/gnmic.yaml
#
# Test connectivity first:
# gnmic -a 172.16.0.1:6030 -u admin -p admin --insecure capabilities
#
# Debug subscriptions:
# gnmic -a 172.16.0.1:6030 -u admin -p admin --insecure \
# subscribe --path /interfaces/interface/state --stream-mode sample --sample-interval 10s
# ==============================================================================
# Global settings # Global settings
# ==============================================================================
username: admin username: admin
password: admin password: admin
insecure: true insecure: true
skip-verify: true
encoding: json_ietf encoding: json_ietf
log: true log: true
debug: true
timeout: 30s
retry: 10s
# ==============================================================================
# Target devices - All switches in the fabric # Target devices - All switches in the fabric
# ==============================================================================
targets: targets:
# Spine switches # ---------------------------------------------------------------------------
# Spine switches (AS 65000)
# ---------------------------------------------------------------------------
spine1: spine1:
address: 172.16.0.1:6030 address: 172.16.0.1:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: spine role: spine
fabric_tier: spine fabric_tier: spine
device: spine1
spine2: spine2:
address: 172.16.0.2:6030 address: 172.16.0.2:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: spine role: spine
fabric_tier: spine fabric_tier: spine
device: spine2
# ---------------------------------------------------------------------------
# Leaf switches - VTEP1 (AS 65001) # Leaf switches - VTEP1 (AS 65001)
# ---------------------------------------------------------------------------
leaf1: leaf1:
address: 172.16.0.25:6030 address: 172.16.0.25:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep1 vtep: vtep1
mlag_pair: "1" mlag_pair: "1"
device: leaf1
leaf2: leaf2:
address: 172.16.0.50:6030 address: 172.16.0.50:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep1 vtep: vtep1
mlag_pair: "1" mlag_pair: "1"
device: leaf2
# ---------------------------------------------------------------------------
# Leaf switches - VTEP2 (AS 65002) # Leaf switches - VTEP2 (AS 65002)
# ---------------------------------------------------------------------------
leaf3: leaf3:
address: 172.16.0.27:6030 address: 172.16.0.27:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep2 vtep: vtep2
mlag_pair: "2" mlag_pair: "2"
device: leaf3
leaf4: leaf4:
address: 172.16.0.28:6030 address: 172.16.0.28:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep2 vtep: vtep2
mlag_pair: "2" mlag_pair: "2"
device: leaf4
# ---------------------------------------------------------------------------
# Leaf switches - VTEP3 (AS 65003) # Leaf switches - VTEP3 (AS 65003)
# ---------------------------------------------------------------------------
leaf5: leaf5:
address: 172.16.0.29:6030 address: 172.16.0.29:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep3 vtep: vtep3
mlag_pair: "3" mlag_pair: "3"
device: leaf5
leaf6: leaf6:
address: 172.16.0.30:6030 address: 172.16.0.30:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep3 vtep: vtep3
mlag_pair: "3" mlag_pair: "3"
device: leaf6
# ---------------------------------------------------------------------------
# Leaf switches - VTEP4 (AS 65004) # Leaf switches - VTEP4 (AS 65004)
# ---------------------------------------------------------------------------
leaf7: leaf7:
address: 172.16.0.31:6030 address: 172.16.0.31:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep4 vtep: vtep4
mlag_pair: "4" mlag_pair: "4"
device: leaf7
leaf8: leaf8:
address: 172.16.0.32:6030 address: 172.16.0.32:6030
subscriptions: subscriptions:
- interfaces - interfaces
- bgp
- system - system
labels: labels:
role: leaf role: leaf
fabric_tier: leaf fabric_tier: leaf
vtep: vtep4 vtep: vtep4
mlag_pair: "4" mlag_pair: "4"
device: leaf8
# Subscriptions - define what to collect # ==============================================================================
# Subscriptions - define what telemetry to collect
# ==============================================================================
subscriptions: subscriptions:
# ---------------------------------------------------------------------------
# Interface statistics - for weathermap bandwidth visualization # Interface statistics - for weathermap bandwidth visualization
# Simplified path that works with Arista cEOS OpenConfig implementation
# ---------------------------------------------------------------------------
interfaces: interfaces:
paths: paths:
- /interfaces/interface/state/counters - /interfaces/interface/state
- /interfaces/interface/state/oper-status
- /interfaces/interface/state/admin-status
mode: stream mode: stream
stream-mode: sample stream-mode: sample
sample-interval: 10s sample-interval: 15s
encoding: json_ietf
# BGP session state # ---------------------------------------------------------------------------
bgp: # System information - hostname, uptime, memory
paths: # ---------------------------------------------------------------------------
- /network-instances/network-instance[name=default]/protocols/protocol[identifier=BGP][name=BGP]/bgp/neighbors/neighbor/state
mode: stream
stream-mode: sample
sample-interval: 30s
# System information
system: system:
paths: paths:
- /system/state - /system/state
- /system/memory/state
mode: stream mode: stream
stream-mode: sample stream-mode: sample
sample-interval: 60s sample-interval: 30s
encoding: json_ietf
# ==============================================================================
# Prometheus output configuration # Prometheus output configuration
# ==============================================================================
outputs: outputs:
prometheus: prometheus:
type: prometheus type: prometheus
@@ -170,12 +198,16 @@ outputs:
append-subscription-name: true append-subscription-name: true
export-timestamps: true export-timestamps: true
strings-as-labels: true strings-as-labels: true
debug: false debug: true
add-target: target # Expiration time for metrics (prevents stale data)
expiration: 120s
# Event processors to clean up metric names
event-processors: event-processors:
- trim-prefixes - trim-prefixes
# ==============================================================================
# Event processors - clean up and transform metrics # Event processors - clean up and transform metrics
# ==============================================================================
processors: processors:
trim-prefixes: trim-prefixes:
event-strings: event-strings: