Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/installation/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,10 @@ This is the current list of components that can be configured in the `logging.co
- `api_server`
- `election_candidate`
- `embedded_etcd`
- `remote_etcd`
- `migration`
- `migration_runner`
- `ports_service`
- `remote_etcd`
- `scheduler_service`
- `workflows_backend`
- `workflows_worker`
- `ports_service`
2 changes: 1 addition & 1 deletion server/internal/api/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func NewServer(
// Mount all the v1 handlers
v1Svc.Mount(mux)

logger := loggerFactory.Logger("api_server")
logger := loggerFactory.Logger(logging.ComponentAPIServer)
handler := addMiddleware(logger, mux)

var (
Expand Down
2 changes: 1 addition & 1 deletion server/internal/election/candidate.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ func NewCandidate(
) *Candidate {
return &Candidate{
store: store,
logger: loggerFactory.Logger("election_candidate").With().
logger: loggerFactory.Logger(logging.ComponentElectionCandidate).With().
Stringer("election_name", electionName).
Str("candidate_id", candidateID).
Logger(),
Expand Down
2 changes: 1 addition & 1 deletion server/internal/etcd/embedded.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func NewEmbeddedEtcd(cfg *config.Manager, loggerFactory *logging.Factory) *Embed
return &EmbeddedEtcd{
cfg: cfg,
initialized: make(chan struct{}),
logger: loggerFactory.Logger("embedded_etcd"),
logger: loggerFactory.Logger(logging.ComponentEmbeddedEtcd),
loggerFactory: loggerFactory,
}
}
Expand Down
2 changes: 1 addition & 1 deletion server/internal/etcd/logging.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func newZapLogger(base zerolog.Logger, logLevel, component string) (*zap.Logger,
core := zerozap.New(base.
Level(level).
With().
Str("component", component).
Str("etcd_component", component).
Logger())
return zap.New(core), nil
}
Expand Down
2 changes: 1 addition & 1 deletion server/internal/etcd/remote.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func NewRemoteEtcd(cfg *config.Manager, loggerFactory *logging.Factory) *RemoteE
cfg: cfg,
initialized: make(chan struct{}),
err: make(chan error),
logger: loggerFactory.Logger("remote_etcd"),
logger: loggerFactory.Logger(logging.ComponentRemoteEtcd),
loggerFactory: loggerFactory,
}
}
Expand Down
29 changes: 24 additions & 5 deletions server/internal/logging/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,39 @@ import (
"github.com/pgEdge/control-plane/server/internal/config"
)

type Component string

func (c Component) String() string {
return string(c)
}

const (
ComponentAPIServer Component = "api_server"
ComponentElectionCandidate Component = "election_candidate"
ComponentEmbeddedEtcd Component = "embedded_etcd"
ComponentMigration Component = "migration"
ComponentMigrationRunner Component = "migration_runner"
ComponentPortsService Component = "ports_service"
ComponentRemoteEtcd Component = "remote_etcd"
ComponentSchedulerService Component = "scheduler_service"
ComponentWorkflowsBackend Component = "workflows_backend"
ComponentWorkflowsWorker Component = "workflows_worker"
)

type Factory struct {
base zerolog.Logger
componentLevels map[string]zerolog.Level
componentLevels map[Component]zerolog.Level
}

func NewFactory(cfg config.Config, base zerolog.Logger) (*Factory, error) {
componentLevels := map[string]zerolog.Level{}
componentLevels := map[Component]zerolog.Level{}

for component, l := range cfg.Logging.ComponentLevels {
level, err := zerolog.ParseLevel(l)
if err != nil {
return nil, fmt.Errorf("failed to parse level for component '%s': %w", component, err)
}
componentLevels[component] = level
componentLevels[Component(component)] = level
}

return &Factory{
Expand All @@ -30,12 +49,12 @@ func NewFactory(cfg config.Config, base zerolog.Logger) (*Factory, error) {
}, nil
}

func (f *Factory) Logger(component string) zerolog.Logger {
func (f *Factory) Logger(component Component) zerolog.Logger {
logger := f.base
level, ok := f.componentLevels[component]
if ok {
logger = logger.Level(level)
}

return logger.With().Str("component", component).Logger()
return logger.With().Stringer("component", component).Logger()
}
2 changes: 1 addition & 1 deletion server/internal/migrate/migrations/add_task_scope.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func (a *AddTaskScope) Run(ctx context.Context, i *do.Injector) error {
return fmt.Errorf("failed to initialize task store: %w", err)
}

logger := loggerFactory.Logger("migration").With().
logger := loggerFactory.Logger(logging.ComponentMigration).With().
Str("identifier", a.Identifier()).
Logger()

Expand Down
2 changes: 1 addition & 1 deletion server/internal/migrate/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func NewRunner(
hostID: hostID,
store: store,
injector: injector,
logger: loggerFactory.Logger("migration_runner"),
logger: loggerFactory.Logger(logging.ComponentMigrationRunner),
migrations: migrations,
candidate: candidate,
errCh: make(chan error, 1),
Expand Down
2 changes: 1 addition & 1 deletion server/internal/ports/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func NewService(
) *Service {
return &Service{
cfg: cfg,
logger: loggerFactory.Logger("ports_service"),
logger: loggerFactory.Logger(logging.ComponentPortsService),
store: store,
portChecker: portChecker,
hostSvc: hostSvc,
Expand Down
2 changes: 1 addition & 1 deletion server/internal/scheduler/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func NewService(
elector *Elector,
) *Service {
return &Service{
logger: loggerFactory.Logger("scheduler_service"),
logger: loggerFactory.Logger(logging.ComponentSchedulerService),
store: store,
executor: executor,
etcdClient: etcdClient,
Expand Down
4 changes: 2 additions & 2 deletions server/internal/workflows/provide.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package workflows
import (
"github.com/cschleiden/go-workflows/backend"
"github.com/cschleiden/go-workflows/client"
"github.com/rs/zerolog"
"github.com/samber/do"
clientv3 "go.etcd.io/etcd/client/v3"

Expand Down Expand Up @@ -83,10 +82,11 @@ func provideBackend(i *do.Injector) {
if err != nil {
return nil, err
}
zl, err := do.Invoke[zerolog.Logger](i)
loggerFactory, err := do.Invoke[*logging.Factory](i)
if err != nil {
return nil, err
}
zl := loggerFactory.Logger(logging.ComponentWorkflowsBackend)
logger := logging.Slog(zl, zl.GetLevel())
backendOpts := backend.ApplyOptions(
backend.WithLogger(logger),
Expand Down
2 changes: 1 addition & 1 deletion server/internal/workflows/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func NewWorker(loggerFactory *logging.Factory, be backend.Backend, workflows *Wo
}

return &Worker{
logger: loggerFactory.Logger("workflows_worker"),
logger: loggerFactory.Logger(logging.ComponentWorkflowsWorker),
worker: w,
workflows: workflows,
}, nil
Expand Down