- Switch Telegraf from native IOS-XR YANG paths to OpenConfig (openconfig-interfaces:interfaces/interface/state/counters) - Use json_ietf encoding instead of proto (IOS-XR 24.3.1 compat) - Target only CORE-01/CORE-02 (R9K routers blocked by CML mgmt net) - Update all 3 Grafana dashboard queries to match OpenConfig field names (in-octets, out-octets, in-pkts, out-pkts, in-errors, etc.) - Rewrite gnmi_grpc_config.py to use SSH/CLI via paramiko instead of NETCONF (IOS-XR 24.3.1 rejects NETCONF gRPC edit-config) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
# Telegraf Configuration for gNMI Streaming Telemetry
|
|
# Collects interface counters and data rates from IOS-XR routers
|
|
|
|
[global_tags]
|
|
|
|
[agent]
|
|
interval = "10s"
|
|
round_interval = true
|
|
metric_batch_size = 1000
|
|
metric_buffer_limit = 10000
|
|
collection_jitter = "0s"
|
|
flush_interval = "10s"
|
|
flush_jitter = "0s"
|
|
precision = "0s"
|
|
|
|
###############################################################################
|
|
# INPUT PLUGINS #
|
|
###############################################################################
|
|
|
|
## CORE routers (directly reachable on port 57400 from host)
|
|
## R9K routers (10.100.0.1-7) are blocked by CML management network filtering
|
|
[[inputs.gnmi]]
|
|
addresses = [
|
|
"10.100.0.100:57400",
|
|
"10.100.0.200:57400"
|
|
]
|
|
username = "webui"
|
|
password = "cisco"
|
|
|
|
## No TLS (lab environment)
|
|
enable_tls = false
|
|
|
|
## Use json_ietf encoding (supported by IOS-XR 24.3.1)
|
|
encoding = "json_ietf"
|
|
|
|
## Redial in case of failures after
|
|
redial = "10s"
|
|
|
|
## OpenConfig interface counters (bytes, packets, errors, discards)
|
|
[[inputs.gnmi.subscription]]
|
|
name = "interface_counters"
|
|
origin = "openconfig-interfaces"
|
|
path = "/interfaces/interface/state/counters"
|
|
subscription_mode = "sample"
|
|
sample_interval = "10s"
|
|
|
|
## OpenConfig interface state (admin/oper status, description, type)
|
|
[[inputs.gnmi.subscription]]
|
|
name = "interface_state"
|
|
origin = "openconfig-interfaces"
|
|
path = "/interfaces/interface/state"
|
|
subscription_mode = "sample"
|
|
sample_interval = "30s"
|
|
|
|
###############################################################################
|
|
# OUTPUT PLUGINS #
|
|
###############################################################################
|
|
|
|
[[outputs.influxdb_v2]]
|
|
urls = ["http://localhost:8086"]
|
|
token = "${INFLUXDB_TOKEN}"
|
|
organization = "openbmp"
|
|
bucket = "telemetry"
|