Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2023-08-21 08:25:20 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2023-09-05 08:40:40 +0300
commit9ca8b86102188f14e9eeb600127d0ecd15eaea8c (patch)
tree0f06a7a70831301e4fa7d5e4233ccc9a37bba509
parentc48d4c7530b896de0cd78753442f78b6e5bebb00 (diff)
cli/praefect: Refactor code to not use logger before it is configured
The "serve" subcommand already starts using the logger before it is configured. Refactor the code to stop doing this.
-rw-r--r--internal/cli/praefect/serve.go36
-rw-r--r--internal/praefect/dependencies.go2
-rw-r--r--internal/praefect/server.go8
3 files changed, 23 insertions, 23 deletions
diff --git a/internal/cli/praefect/serve.go b/internal/cli/praefect/serve.go
index 617d5ecd7..36440c7b0 100644
--- a/internal/cli/praefect/serve.go
+++ b/internal/cli/praefect/serve.go
@@ -64,38 +64,38 @@ func serveAction(ctx *cli.Context) error {
return unexpectedPositionalArgsError{Command: ctx.Command.Name}
}
- logger := log.Default()
// The ctx.Command.Name can't be used here because if `praefect -config FILE` is used
// it will be set to 'praefect' instead of 'serve'.
- pathToConfigFile := mustProvideConfigFlag(ctx, "serve")
+ configPath := mustProvideConfigFlag(ctx, "serve")
- logger.Infof("Starting %s", version.GetVersionString("Praefect"))
-
- if err := run(ctx.App.Name, logger, pathToConfigFile); err != nil {
- logger.WithError(err).Error("Praefect shutdown")
- return cli.Exit("", 1)
- }
-
- logger.Info("Praefect shutdown")
-
- return nil
-}
-
-func run(appName string, logger *logrus.Entry, configPath string) error {
conf, err := readConfig(configPath)
if err != nil {
return err
}
- if _, err := log.Configure(os.Stdout, conf.Logging.Format, conf.Logging.Level); err != nil {
+ logger, err := log.Configure(os.Stdout, conf.Logging.Format, conf.Logging.Level)
+ if err != nil {
return fmt.Errorf("configuring logger: %w", err)
}
+ logger.Infof("Starting %s", version.GetVersionString("Praefect"))
+
if !conf.Failover.Enabled && conf.Failover.ElectionStrategy != "" {
logger.WithField("election_strategy", conf.Failover.ElectionStrategy).Warn(
"ignoring configured election strategy as failover is disabled")
}
+ if err := run(conf, ctx.App.Name, logger); err != nil {
+ logger.WithError(err).Error("Praefect shutdown")
+ return cli.Exit("", 1)
+ }
+
+ logger.Info("Praefect shutdown")
+
+ return nil
+}
+
+func run(conf config.Config, appName string, logger logrus.FieldLogger) error {
configure(logger, appName, conf)
starterConfigs, err := getStarterConfigs(conf)
@@ -154,7 +154,7 @@ func configure(logger logrus.FieldLogger, appName string, conf config.Config) {
func server(
cfgs []starter.Config,
conf config.Config,
- logger *logrus.Entry,
+ logger logrus.FieldLogger,
b bootstrap.Listener,
promreg prometheus.Registerer,
dbPromRegistry interface {
@@ -571,7 +571,7 @@ func getStarterConfigs(conf config.Config) ([]starter.Config, error) {
return cfgs, nil
}
-func initDatabase(ctx context.Context, logger *logrus.Entry, conf config.Config) (*sql.DB, func(), error) {
+func initDatabase(ctx context.Context, logger logrus.FieldLogger, conf config.Config) (*sql.DB, func(), error) {
openDBCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
defer cancel()
db, err := glsql.OpenDB(openDBCtx, conf.DB)
diff --git a/internal/praefect/dependencies.go b/internal/praefect/dependencies.go
index 89aac0e7e..9184ab466 100644
--- a/internal/praefect/dependencies.go
+++ b/internal/praefect/dependencies.go
@@ -14,7 +14,7 @@ import (
// Dependencies consolidates Praefect service dependencies for injection.
type Dependencies struct {
Config config.Config
- Logger *logrus.Entry
+ Logger logrus.FieldLogger
Coordinator *Coordinator
Director proxy.StreamDirector
NodeMgr nodes.Manager
diff --git a/internal/praefect/server.go b/internal/praefect/server.go
index c425a0eb1..84e75eb66 100644
--- a/internal/praefect/server.go
+++ b/internal/praefect/server.go
@@ -45,7 +45,7 @@ import (
// NewBackchannelServerFactory returns a ServerFactory that serves the RefTransactionServer on the backchannel
// connection.
-func NewBackchannelServerFactory(logger *logrus.Entry, refSvc gitalypb.RefTransactionServer, registry *sidechannel.Registry) backchannel.ServerFactory {
+func NewBackchannelServerFactory(logger logrus.FieldLogger, refSvc gitalypb.RefTransactionServer, registry *sidechannel.Registry) backchannel.ServerFactory {
logMsgProducer := log.MessageProducer(
log.PropagationMessageProducer(grpcmwlogrus.DefaultMessageProducer),
structerr.FieldsProducer,
@@ -56,7 +56,7 @@ func NewBackchannelServerFactory(logger *logrus.Entry, refSvc gitalypb.RefTransa
lm.Register(sidechannel.NewServerHandshaker(registry))
srv := grpc.NewServer(
grpc.ChainUnaryInterceptor(
- commonUnaryServerInterceptors(logger, logMsgProducer)...,
+ commonUnaryServerInterceptors(logger.WithField("component", "backchannel.PraefectServer"), logMsgProducer)...,
),
grpc.Creds(lm),
)
@@ -130,7 +130,7 @@ func NewGRPCServer(
)
unaryInterceptors := append(
- commonUnaryServerInterceptors(deps.Logger, logMsgProducer),
+ commonUnaryServerInterceptors(deps.Logger.WithField("component", "praefect.UnaryServerInterceptor"), logMsgProducer),
middleware.MethodTypeUnaryInterceptor(deps.Registry, deps.Logger),
auth.UnaryServerInterceptor(deps.Config.Auth),
)
@@ -142,7 +142,7 @@ func NewGRPCServer(
middleware.MethodTypeStreamInterceptor(deps.Registry, deps.Logger),
metadatahandler.StreamInterceptor,
grpcprometheus.StreamServerInterceptor,
- grpcmwlogrus.StreamServerInterceptor(deps.Logger,
+ grpcmwlogrus.StreamServerInterceptor(deps.Logger.WithField("component", "praefect.StreamServerInterceptor"),
grpcmwlogrus.WithTimestampFormat(log.LogTimestampFormat),
grpcmwlogrus.WithMessageProducer(logMsgProducer),
log.DeciderOption(),