Skip to content

Commit 881a32e

Browse files
authored
Merge pull request #2018 from authzed/2010-fix-logging-behavior
Fix logging behavior around setting goproc limits
2 parents 0d804b6 + 6fbd3fb commit 881a32e

File tree

4 files changed

+13
-31
lines changed

4 files changed

+13
-31
lines changed

cmd/spicedb/main.go

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,13 @@ package main
33
import (
44
"errors"
55
"fmt"
6-
"log/slog"
76
"os"
87

9-
"github.com/KimMachineGun/automemlimit/memlimit"
108
mcobra "github.com/muesli/mango-cobra"
119
"github.com/muesli/roff"
1210
"github.com/rs/zerolog"
13-
slogzerolog "github.com/samber/slog-zerolog/v2"
1411
"github.com/sercand/kuberesolver/v5"
1512
"github.com/spf13/cobra"
16-
"go.uber.org/automaxprocs/maxprocs"
1713
"google.golang.org/grpc/balancer"
1814

1915
_ "google.golang.org/grpc/xds"
@@ -29,33 +25,16 @@ import (
2925
var errParsing = errors.New("parsing error")
3026

3127
func main() {
28+
// Set up root logger
29+
// This will typically be overwritten by the logging setup for a given command.
30+
log.SetGlobalLogger(zerolog.New(os.Stderr).Level(zerolog.InfoLevel))
31+
3232
// Enable Kubernetes gRPC resolver
3333
kuberesolver.RegisterInCluster()
3434

3535
// Enable consistent hashring gRPC load balancer
3636
balancer.Register(cmdutil.ConsistentHashringBuilder)
3737

38-
globalLogger := zerolog.New(os.Stderr).Level(zerolog.DebugLevel)
39-
log.SetGlobalLogger(globalLogger)
40-
slogger := slog.New(slogzerolog.Option{Level: slog.LevelDebug, Logger: &globalLogger}.NewZerologHandler())
41-
42-
undo, err := maxprocs.Set(maxprocs.Logger(globalLogger.Printf))
43-
if err != nil {
44-
log.Fatal().Err(err).Msg("failed to set maxprocs")
45-
}
46-
defer undo()
47-
48-
_, _ = memlimit.SetGoMemLimitWithOpts(
49-
memlimit.WithRatio(0.9),
50-
memlimit.WithProvider(
51-
memlimit.ApplyFallback(
52-
memlimit.FromCgroup,
53-
memlimit.FromSystem,
54-
),
55-
),
56-
memlimit.WithLogger(slogger),
57-
)
58-
5938
// Create a root command
6039
rootCmd := cmd.NewRootCommand("spicedb")
6140
rootCmd.SetFlagErrorFunc(func(cmd *cobra.Command, err error) error {

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ require (
77
cloud.google.com/go/spanner v1.65.0
88
contrib.go.opencensus.io/exporter/prometheus v0.4.2
99
github.com/IBM/pgxpoolprometheus v1.1.1
10-
github.com/KimMachineGun/automemlimit v0.6.1
10+
github.com/KimMachineGun/automemlimit v0.6.1 // indirect
1111
github.com/Masterminds/squirrel v1.5.4
1212
github.com/authzed/authzed-go v0.14.0
1313

@@ -54,7 +54,7 @@ require (
5454
github.com/jackc/pgx-zerolog v0.0.0-20230315001418-f978528409eb
5555
github.com/jackc/pgx/v5 v5.6.0
5656
github.com/johannesboyne/gofakes3 v0.0.0-20230914150226-f005f5cc03aa
57-
github.com/jzelinskie/cobrautil/v2 v2.0.0-20240506193431-cec803903353
57+
github.com/jzelinskie/cobrautil/v2 v2.0.0-20240813173937-98b79ae0b499
5858
github.com/jzelinskie/persistent v0.0.0-20230816160542-1205ef8f0e15
5959
github.com/jzelinskie/stringz v0.0.3
6060
github.com/lthibault/jitterbug v2.0.0+incompatible
@@ -75,7 +75,7 @@ require (
7575
github.com/rs/xid v1.5.0
7676
github.com/rs/zerolog v1.33.0
7777
github.com/samber/lo v1.46.0
78-
github.com/samber/slog-zerolog/v2 v2.6.0
78+
github.com/samber/slog-zerolog/v2 v2.6.0 // indirect
7979
github.com/schollz/progressbar/v3 v3.14.5
8080
github.com/scylladb/go-set v1.0.2
8181
github.com/sean-/sysexits v1.0.0
@@ -381,7 +381,7 @@ require (
381381
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect
382382
go.opentelemetry.io/otel/metric v1.28.0 // indirect
383383
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
384-
go.uber.org/automaxprocs v1.5.3
384+
go.uber.org/automaxprocs v1.5.3 // indirect
385385
go.uber.org/multierr v1.11.0 // indirect
386386
go.uber.org/zap v1.26.0 // indirect
387387
golang.org/x/crypto v0.25.0 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,8 +1246,8 @@ github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY=
12461246
github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0=
12471247
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
12481248
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
1249-
github.com/jzelinskie/cobrautil/v2 v2.0.0-20240506193431-cec803903353 h1:UGu36yaNgS3oK5kyVin6JoqDHX0I9TSiEkxj8vduveQ=
1250-
github.com/jzelinskie/cobrautil/v2 v2.0.0-20240506193431-cec803903353/go.mod h1:GLTrbHa+A3wox/h5wYURgBjRiOppvCeKJxWCNCFMARw=
1249+
github.com/jzelinskie/cobrautil/v2 v2.0.0-20240813173937-98b79ae0b499 h1:dXbwn1pwooxn2DAnPF3SR7tNPqC6N4VmwftMrapCYng=
1250+
github.com/jzelinskie/cobrautil/v2 v2.0.0-20240813173937-98b79ae0b499/go.mod h1:jsl6cEF6BT3UeQoSLreA7G0sZXemoI5XNqyxzWCohbE=
12511251
github.com/jzelinskie/persistent v0.0.0-20230816160542-1205ef8f0e15 h1:lFr5Krrc4LESaXK9yW15IQMZ4p2bZGw/+71Z1dV6tuk=
12521252
github.com/jzelinskie/persistent v0.0.0-20230816160542-1205ef8f0e15/go.mod h1:gGiXKQUcSfUdRciTcDSuLGLZLLFSIjt1xNTE90WHDSI=
12531253
github.com/jzelinskie/stringz v0.0.3 h1:0GhG3lVMYrYtIvRbxvQI6zqRTT1P1xyQlpa0FhfUXas=

pkg/cmd/server/defaults.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/selector"
1919
"github.com/jzelinskie/cobrautil/v2"
2020
"github.com/jzelinskie/cobrautil/v2/cobraotel"
21+
"github.com/jzelinskie/cobrautil/v2/cobraproclimits"
2122
"github.com/jzelinskie/cobrautil/v2/cobrazerolog"
2223
"github.com/prometheus/client_golang/prometheus"
2324
"github.com/prometheus/client_golang/prometheus/promhttp"
@@ -71,6 +72,8 @@ func DefaultPreRunE(programName string) cobrautil.CobraRunFunc {
7172
logging.SetGlobalLogger(logger)
7273
}),
7374
).RunE(),
75+
cobraproclimits.SetMemLimitRunE(),
76+
cobraproclimits.SetProcLimitRunE(),
7477
cobraotel.New("spicedb",
7578
cobraotel.WithLogger(zerologr.New(&logging.Logger)),
7679
).RunE(),

0 commit comments

Comments
 (0)