Files
govpp-snmp-agentx/main.go
2025-06-09 17:20:58 +02:00

43 lines
1.1 KiB
Go

package main
import (
"flag"
"log"
"strings"
"time"
"github.com/posteo/go-agentx"
"govpp-snmp-example/vppstats"
)
func main() {
addr := flag.String("agentx-addr", "localhost:705", "Address to connect to (hostname:port or Unix socket path)")
vppStatsAddr := flag.String("vpp-stats-addr", "/var/run/vpp/stats.sock", "VPP stats socket path")
period := flag.Float64("period", 10.0, "Interval in seconds for querying VPP interface stats")
flag.Parse()
var network, address string
if strings.HasPrefix(*addr, "/") {
network = "unix"
address = *addr
} else {
network = "tcp"
address = *addr
}
client, err := agentx.Dial(network, address)
if err != nil {
log.Fatalf("Failed to dial %s %s: %v", network, address, err)
}
client.Timeout = 1 * time.Minute
client.ReconnectInterval = 1 * time.Second
// Start VPP stats routine
vppstats.StartStatsRoutine(*vppStatsAddr, time.Duration(*period*1000)*time.Millisecond)
for {
time.Sleep(100 * time.Millisecond)
}
}