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) } }