[#1436] node: Log service initialization/boot up

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
Pavel Karpy 2022-05-25 19:18:36 +03:00 committed by fyrchik
parent d84d52924a
commit da3ae202f0
5 changed files with 46 additions and 21 deletions

View file

@ -55,7 +55,9 @@ func initControlService(c *cfg) {
control.RegisterControlServiceServer(c.cfgControlService.server, ctlSvc)
c.workers = append(c.workers, newWorkerFromFunc(func(ctx context.Context) {
fatalOnErr(c.cfgControlService.server.Serve(lis))
runAndLog(c, "control", false, func(c *cfg) {
fatalOnErr(c.cfgControlService.server.Serve(lis))
})
}))
}

View file

@ -66,32 +66,49 @@ func main() {
shutdown(c)
}
func initAndLog(c *cfg, name string, initializer func(*cfg)) {
c.log.Info(fmt.Sprintf("initializing %s service...", name))
initializer(c)
c.log.Info(fmt.Sprintf("%s service has been successfully initialized", name))
}
func initApp(c *cfg) {
c.ctx, c.ctxCancel = signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP)
initGRPC(c)
initAndLog(c, "gRPC", initGRPC)
initAndLog(c, "netmap", initNetmapService)
initAndLog(c, "accounting", initAccountingService)
initAndLog(c, "container", initContainerService)
initAndLog(c, "session", initSessionService)
initAndLog(c, "reputation", initReputationService)
initAndLog(c, "notification", initNotifications)
initAndLog(c, "object", initObjectService)
initAndLog(c, "profiler", initProfiler)
initAndLog(c, "metrics", initMetrics)
initAndLog(c, "control", initControlService)
initNetmapService(c)
initAccountingService(c)
initContainerService(c)
initSessionService(c)
initReputationService(c)
initNotifications(c)
initObjectService(c)
initProfiler(c)
initMetrics(c)
initControlService(c)
initAndLog(c, "storage engine", func(c *cfg) {
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Open())
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Init())
})
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Open())
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Init())
initAndLog(c, "morph notifications", listenMorphNotifications)
}
listenMorphNotifications(c)
func runAndLog(c *cfg, name string, logSuccess bool, starter func(*cfg)) {
c.log.Info(fmt.Sprintf("starting %s service...", name))
starter(c)
if logSuccess {
c.log.Info(fmt.Sprintf("%s service started successfully", name))
}
}
func bootUp(c *cfg) {
connectNats(c)
serveGRPC(c)
makeAndWaitNotaryDeposit(c)
runAndLog(c, "NATS", true, connectNats)
runAndLog(c, "gRPC", false, serveGRPC)
runAndLog(c, "notary", true, makeAndWaitNotaryDeposit)
bootstrapNode(c)
startWorkers(c)
}

View file

@ -27,7 +27,9 @@ func initMetrics(c *cfg) {
)
c.workers = append(c.workers, newWorkerFromFunc(func(context.Context) {
fatalOnErr(srv.Serve())
runAndLog(c, "metrics", false, func(c *cfg) {
fatalOnErr(srv.Serve())
})
}))
c.closers = append(c.closers, func() {

View file

@ -207,7 +207,9 @@ func listenMorphNotifications(c *cfg) {
fatalOnErr(err)
c.workers = append(c.workers, newWorkerFromFunc(func(ctx context.Context) {
lis.ListenWithError(ctx, c.internalErr)
runAndLog(c, "morph notification", false, func(c *cfg) {
lis.ListenWithError(ctx, c.internalErr)
})
}))
setNetmapNotificationParser(c, newEpochNotification, netmapEvent.ParseNewEpoch)

View file

@ -26,7 +26,9 @@ func initProfiler(c *cfg) {
)
c.workers = append(c.workers, newWorkerFromFunc(func(context.Context) {
fatalOnErr(srv.Serve())
runAndLog(c, "profiler", false, func(c *cfg) {
fatalOnErr(srv.Serve())
})
}))
c.closers = append(c.closers, func() {