telemetry/cmd/server/main.go

47 lines
831 B
Go
Raw Permalink Normal View History

2021-11-02 13:23:29 +01:00
package main
import (
"flag"
2021-11-09 13:53:49 +01:00
"log"
2021-11-08 12:22:11 +01:00
"time"
2021-11-02 13:23:29 +01:00
"github.com/status-im/dev-telemetry/telemetry"
"go.uber.org/zap"
2021-11-08 12:22:11 +01:00
"github.com/robfig/cron/v3"
2021-11-02 13:23:29 +01:00
)
func main() {
logger, err := zap.NewDevelopment()
if err != nil {
log.Fatal(err)
}
2021-11-02 13:23:29 +01:00
port := flag.Int("port", 8080, "Port number")
dataSourceName := flag.String("data-source-name", "", "DB URL")
2021-11-02 13:23:29 +01:00
flag.Parse()
db := telemetry.OpenDb(*dataSourceName, logger)
2021-11-02 13:23:29 +01:00
defer db.Close()
aggregator, err := telemetry.NewAggregator(db, logger)
if err != nil {
logger.Fatal("Error creating aggregator", zap.Error(err))
}
2021-11-08 12:22:11 +01:00
c := cron.New()
_, err = c.AddFunc("0 * * * *", func() {
2021-11-08 12:22:11 +01:00
aggregator.Run(time.Hour)
})
2021-11-09 13:53:49 +01:00
if err != nil {
logger.Fatal("Error adding cron job", zap.Error(err))
2021-11-09 13:53:49 +01:00
}
2021-11-08 12:22:11 +01:00
c.Start()
defer c.Stop()
server := telemetry.NewServer(db, logger)
2021-11-02 13:23:29 +01:00
server.Start(*port)
}