func main() { buildstampInt64, _ := strconv.ParseInt(buildstamp, 10, 64) setting.BuildVersion = version setting.BuildCommit = commit setting.BuildStamp = buildstampInt64 go listenToSystemSignels() flag.Parse() writePIDFile() initRuntime() if setting.ProfileHeapMB > 0 { errors := make(chan error) go func() { for e := range errors { log.Error(0, e.Error()) } }() heap, _ := heap.New(setting.ProfileHeapDir, setting.ProfileHeapMB*1000000, setting.ProfileHeapWait, time.Duration(1)*time.Second, errors) go heap.Run() } search.Init() login.Init() social.NewOAuthService() eventpublisher.Init() plugins.Init() elasticstore.Init() metricsBackend, err := helper.New(setting.StatsdEnabled, setting.StatsdAddr, setting.StatsdType, "grafana", setting.InstanceId) if err != nil { log.Error(3, "Statsd client:", err) } metricpublisher.Init(metricsBackend) collectoreventpublisher.Init(metricsBackend) api.InitCollectorController(metricsBackend) if setting.AlertingEnabled { alerting.Init(metricsBackend) alerting.Construct() } if err := notifications.Init(); err != nil { log.Fatal(3, "Notification service failed to initialize", err) } if setting.ReportingEnabled { go metrics.StartUsageReportLoop() } cmd.StartServer() exitChan <- 0 }
func main() { buildstampInt64, _ := strconv.ParseInt(buildstamp, 10, 64) setting.BuildVersion = version setting.BuildCommit = commit setting.BuildStamp = buildstampInt64 go func() { c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) <-c os.Exit(0) }() flag.Parse() writePIDFile() initRuntime() search.Init() social.NewOAuthService() eventpublisher.Init() plugins.Init() metricpublisher.Init() elasticstore.Init() api.InitCollectorController() alerting.Init() if err := notifications.Init(); err != nil { log.Fatal(3, "Notification service failed to initialize", err) } if setting.ReportingEnabled { go metrics.StartUsageReportLoop() } cmd.StartServer() log.Close() }