- gNMI integration: NETCONF script to enable gRPC on all 9 routers, Telegraf container with gnmi input plugin, InfluxDB for time-series storage, 3 Grafana telemetry dashboards (utilization, errors, combined) - Traffic generator: Scapy-based dual-mode container (sender/responder) with Flask API, RFC 2544 test suite (throughput, latency, frame-loss, back-to-back), Vue 3 web UI with flow builder, test runner, real-time stats monitor, and results export - docker-compose.yml updated with influxdb, telegraf, traffic-gen, traffic-gen-ui services - Full documentation in DOCS.md sections 15-16 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
67 lines
1.9 KiB
Plaintext
67 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 #
|
|
###############################################################################
|
|
|
|
[[inputs.gnmi]]
|
|
addresses = [
|
|
"10.100.0.100:57400",
|
|
"10.100.0.200:57400",
|
|
"10.100.0.1:57400",
|
|
"10.100.0.2:57400",
|
|
"10.100.0.3:57400",
|
|
"10.100.0.4:57400",
|
|
"10.100.0.5:57400",
|
|
"10.100.0.6:57400",
|
|
"10.100.0.7:57400"
|
|
]
|
|
username = "webui"
|
|
password = "cisco"
|
|
|
|
## Do not verify the server certificate
|
|
enable_tls = false
|
|
|
|
## gNMI encoding requested (one of: "proto", "json", "json_ietf", "bytes")
|
|
encoding = "proto"
|
|
|
|
## Redial in case of failures after
|
|
redial = "10s"
|
|
|
|
[[inputs.gnmi.subscription]]
|
|
name = "interface_counters"
|
|
origin = "Cisco-IOS-XR-infra-statsd-oper"
|
|
path = "/infra-statistics/interfaces/interface/latest/generic-counters"
|
|
subscription_mode = "sample"
|
|
sample_interval = "10s"
|
|
|
|
[[inputs.gnmi.subscription]]
|
|
name = "interface_rates"
|
|
origin = "Cisco-IOS-XR-infra-statsd-oper"
|
|
path = "/infra-statistics/interfaces/interface/latest/data-rate"
|
|
subscription_mode = "sample"
|
|
sample_interval = "10s"
|
|
|
|
###############################################################################
|
|
# OUTPUT PLUGINS #
|
|
###############################################################################
|
|
|
|
[[outputs.influxdb_v2]]
|
|
urls = ["http://localhost:8086"]
|
|
token = "${INFLUXDB_TOKEN}"
|
|
organization = "openbmp"
|
|
bucket = "telemetry"
|