Skip to content

Commit

Permalink
Merge pull request #1736 from openmeterio/wire
Browse files Browse the repository at this point in the history
Drop separate logger initialization
  • Loading branch information
sagikazarmark authored Oct 22, 2024
2 parents ef8ba11 + 5b563ff commit 6e482f1
Show file tree
Hide file tree
Showing 14 changed files with 76 additions and 109 deletions.
7 changes: 7 additions & 0 deletions app/common/telemetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ import (
"github.com/openmeterio/openmeter/pkg/gosundheit"
)

// Set the default logger to JSON for messages emitted before the "real" logger is initialized.
//
// We use JSON as a best-effort to make the logs machine-readable.
func init() {
slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stderr, nil)))
}

const (
DefaultShutdownTimeout = 5 * time.Second
)
Expand Down
7 changes: 2 additions & 5 deletions app/common/wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ var KafkaTopic = wire.NewSet(
var Telemetry = wire.NewSet(
NewTelemetryResource,

NewLogger,

NewMeterProvider,
wire.Bind(new(metric.MeterProvider), new(*sdkmetric.MeterProvider)),
NewMeter,
Expand All @@ -96,11 +98,6 @@ var Telemetry = wire.NewSet(
NewTelemetryServer,
)

var Logger = wire.NewSet(
NewTelemetryResource,
NewLogger,
)

var OpenMeter = wire.NewSet(
NewMeterRepository,
wire.Bind(new(meter.Repository), new(*meter.InMemoryRepository)),
Expand Down
12 changes: 8 additions & 4 deletions cmd/balance-worker/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"log/slog"
"os"

"github.com/spf13/pflag"
Expand Down Expand Up @@ -56,17 +57,20 @@ func main() {
os.Exit(0)
}

logger := initializeLogger(conf)

app, cleanup, err := initializeApplication(ctx, conf, logger)
app, cleanup, err := initializeApplication(ctx, conf)
if err != nil {
logger.Error("failed to initialize application", "error", err)
slog.Error("failed to initialize application", "error", err)

cleanup()

os.Exit(1)
}
defer cleanup()

app.SetGlobals()

logger := app.Logger

// Validate service prerequisites

if !conf.Events.Enabled {
Expand Down
11 changes: 3 additions & 8 deletions cmd/balance-worker/wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ type Application struct {
common.GlobalInitializer
common.Migrator
common.Runner

Logger *slog.Logger
}

func initializeApplication(ctx context.Context, conf config.Configuration, logger *slog.Logger) (Application, func(), error) {
func initializeApplication(ctx context.Context, conf config.Configuration) (Application, func(), error) {
wire.Build(
metadata,
common.Config,
Expand All @@ -39,13 +41,6 @@ func initializeApplication(ctx context.Context, conf config.Configuration, logge
return Application{}, nil, nil
}

// TODO: is this necessary? Do we need a logger first?
func initializeLogger(conf config.Configuration) *slog.Logger {
wire.Build(metadata, common.Config, common.Logger)

return new(slog.Logger)
}

func metadata(conf config.Configuration) common.Metadata {
return common.Metadata{
ServiceName: "openmeter",
Expand Down
20 changes: 7 additions & 13 deletions cmd/balance-worker/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 7 additions & 4 deletions cmd/notification-service/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,20 @@ func main() {
os.Exit(0)
}

logger := initializeLogger(conf)

app, cleanup, err := initializeApplication(ctx, conf, logger)
app, cleanup, err := initializeApplication(ctx, conf)
if err != nil {
logger.Error("failed to initialize application", "error", err)
slog.Error("failed to initialize application", "error", err)

cleanup()

os.Exit(1)
}
defer cleanup()

app.SetGlobals()

logger := app.Logger

// Validate service prerequisites

if !conf.Events.Enabled {
Expand Down
12 changes: 3 additions & 9 deletions cmd/notification-service/wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,11 @@ type Application struct {
MessagePublisher message.Publisher
EventPublisher eventbus.Publisher

Meter metric.Meter
Logger *slog.Logger
Meter metric.Meter
}

func initializeApplication(ctx context.Context, conf config.Configuration, logger *slog.Logger) (Application, func(), error) {
func initializeApplication(ctx context.Context, conf config.Configuration) (Application, func(), error) {
wire.Build(
metadata,
common.Config,
Expand All @@ -55,13 +56,6 @@ func initializeApplication(ctx context.Context, conf config.Configuration, logge
return Application{}, nil, nil
}

// TODO: is this necessary? Do we need a logger first?
func initializeLogger(conf config.Configuration) *slog.Logger {
wire.Build(metadata, common.Config, common.Logger)

return new(slog.Logger)
}

func metadata(conf config.Configuration) common.Metadata {
return common.Metadata{
ServiceName: "openmeter",
Expand Down
21 changes: 7 additions & 14 deletions cmd/notification-service/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 7 additions & 4 deletions cmd/server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,20 @@ func main() {
os.Exit(0)
}

logger := initializeLogger(conf)

app, cleanup, err := initializeApplication(ctx, conf, logger)
app, cleanup, err := initializeApplication(ctx, conf)
if err != nil {
logger.Error("failed to initialize application", "error", err)
slog.Error("failed to initialize application", "error", err)

cleanup()

os.Exit(1)
}
defer cleanup()

app.SetGlobals()

logger := app.Logger

logger.Info("starting OpenMeter server", "config", map[string]string{
"address": conf.Address,
"telemetry.address": conf.Telemetry.Address,
Expand Down
12 changes: 3 additions & 9 deletions cmd/server/wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,13 @@ type Application struct {
NamespaceHandlers []namespace.Handler
NamespaceManager *namespace.Manager

Meter metric.Meter
Logger *slog.Logger
Meter metric.Meter

RouterHook func(chi.Router)
}

func initializeApplication(ctx context.Context, conf config.Configuration, logger *slog.Logger) (Application, func(), error) {
func initializeApplication(ctx context.Context, conf config.Configuration) (Application, func(), error) {
wire.Build(
metadata,
common.Config,
Expand All @@ -66,13 +67,6 @@ func initializeApplication(ctx context.Context, conf config.Configuration, logge
return Application{}, nil, nil
}

// TODO: is this necessary? Do we need a logger first?
func initializeLogger(conf config.Configuration) *slog.Logger {
wire.Build(metadata, common.Config, common.Logger)

return new(slog.Logger)
}

func metadata(conf config.Configuration) common.Metadata {
return common.Metadata{
ServiceName: "openmeter",
Expand Down
21 changes: 7 additions & 14 deletions cmd/server/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 6e482f1

Please sign in to comment.