2015-12-29 03:08:03 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2016-02-19 10:30:42 +00:00
|
|
|
"flag"
|
2015-12-29 03:08:03 +00:00
|
|
|
"log"
|
2016-02-19 10:30:42 +00:00
|
|
|
"time"
|
2016-02-19 10:13:30 +00:00
|
|
|
"net/http"
|
2015-12-29 13:05:47 +00:00
|
|
|
)
|
2016-02-19 10:30:42 +00:00
|
|
|
var (
|
|
|
|
nodeserver = NewNodeServer("/nodes")
|
|
|
|
nodes = NewNodes()
|
|
|
|
outputFile string
|
|
|
|
collectInterval time.Duration
|
|
|
|
saveInterval time.Duration
|
|
|
|
)
|
2016-02-19 10:13:30 +00:00
|
|
|
func main(){
|
2016-02-19 10:30:42 +00:00
|
|
|
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()
|
2015-12-29 13:05:47 +00:00
|
|
|
|
2016-02-19 10:30:42 +00:00
|
|
|
collectInterval = time.Second * time.Duration(collectSeconds)
|
|
|
|
saveInterval = time.Second * time.Duration(saveSeconds)
|
|
|
|
|
|
|
|
collectors := []*Collector{
|
|
|
|
NewCollector("statistics"),
|
|
|
|
NewCollector("nodeinfo"),
|
|
|
|
NewCollector("neighbours"),
|
|
|
|
}
|
|
|
|
|
|
|
|
go nodeserver.Listen()
|
|
|
|
|
2016-02-19 10:13:30 +00:00
|
|
|
// static files
|
|
|
|
http.Handle("/", http.FileServer(http.Dir("webroot")))
|
2015-12-29 13:05:47 +00:00
|
|
|
|
2016-02-19 10:13:30 +00:00
|
|
|
log.Fatal(http.ListenAndServe(":8080", nil))
|
2016-02-19 10:30:42 +00:00
|
|
|
for _, c := range collectors {
|
|
|
|
c.Close()
|
|
|
|
}
|
2015-12-29 03:08:03 +00:00
|
|
|
}
|