yanic/main.go

52 lines
1017 B
Go

package main
import (
"flag"
"log"
"os"
"os/signal"
"syscall"
"time"
)
var (
nodes = NewNodes()
outputFile string
collectInterval time.Duration
saveInterval time.Duration
)
func main() {
var collectSeconds, saveSeconds int
flag.StringVar(&outputFile, "output", "nodes.json", "path output file")
flag.IntVar(&collectSeconds, "collectInterval", 15, "interval for data collections")
flag.IntVar(&saveSeconds, "saveInterval", 5, "interval for data saving")
flag.Parse()
collectInterval = time.Second * time.Duration(collectSeconds)
saveInterval = time.Second * time.Duration(saveSeconds)
collectors := []*Collector{
NewCollector("statistics"),
NewCollector("nodeinfo"),
NewCollector("neighbours"),
}
// Wait for SIGINT or SIGTERM
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
sig := <-sigs
log.Println("received", sig)
for _, c := range collectors {
c.Close()
}
}
func check(e error) {
if e != nil {
log.Panic(e)
}
}