Skip to content

Commit a762ee0

Browse files
authored
Merge pull request #5740 from bjartek/grpc-middleware
try to update to new middleware
2 parents eff9395 + a469584 commit a762ee0

File tree

7 files changed

+208
-174
lines changed

7 files changed

+208
-174
lines changed
Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package rpc
22

33
import (
4-
grpczerolog "github.com/grpc-ecosystem/go-grpc-middleware/providers/zerolog/v2"
4+
"context"
5+
"fmt"
6+
57
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/logging"
6-
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/tags"
78
"github.com/rs/zerolog"
89
"google.golang.org/grpc"
910
"google.golang.org/grpc/codes"
@@ -12,14 +13,34 @@ import (
1213
func customClientCodeToLevel(c codes.Code) logging.Level {
1314
if c == codes.OK {
1415
// log successful returns as Debug to avoid excessive logging in info mode
15-
return logging.DEBUG
16+
return logging.LevelDebug
1617
}
1718
return logging.DefaultServerCodeToLevel(c)
1819
}
1920

2021
// LoggingInterceptor creates the logging interceptors to log incoming GRPC request and response (minus the payload body)
2122
func LoggingInterceptor(log zerolog.Logger) []grpc.UnaryServerInterceptor {
22-
tagsInterceptor := tags.UnaryServerInterceptor(tags.WithFieldExtractor(tags.CodeGenRequestFieldExtractor))
23-
loggingInterceptor := logging.UnaryServerInterceptor(grpczerolog.InterceptorLogger(log), logging.WithLevels(customClientCodeToLevel))
24-
return []grpc.UnaryServerInterceptor{tagsInterceptor, loggingInterceptor}
23+
loggingInterceptor := logging.UnaryServerInterceptor(InterceptorLogger(log), logging.WithLevels(customClientCodeToLevel))
24+
return []grpc.UnaryServerInterceptor{loggingInterceptor}
25+
}
26+
27+
// InterceptorLogger adapts zerolog logger to interceptor logger.
28+
// This code is simple enough to be copied and not imported.
29+
func InterceptorLogger(l zerolog.Logger) logging.Logger {
30+
return logging.LoggerFunc(func(_ context.Context, lvl logging.Level, msg string, fields ...any) {
31+
l := l.With().Fields(fields).Logger()
32+
33+
switch lvl {
34+
case logging.LevelDebug:
35+
l.Debug().Msg(msg)
36+
case logging.LevelInfo:
37+
l.Info().Msg(msg)
38+
case logging.LevelWarn:
39+
l.Warn().Msg(msg)
40+
case logging.LevelError:
41+
l.Error().Msg(msg)
42+
default:
43+
panic(fmt.Sprintf("unknown level %v", lvl))
44+
}
45+
})
2546
}

go.mod

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.20
55
require (
66
cloud.google.com/go/compute/metadata v0.2.3
77
cloud.google.com/go/profiler v0.3.0
8-
cloud.google.com/go/storage v1.30.1
8+
cloud.google.com/go/storage v1.36.0
99
github.com/antihax/optional v1.0.0
1010
github.com/aws/aws-sdk-go-v2/config v1.25.5
1111
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.5.1
@@ -24,8 +24,7 @@ require (
2424
github.com/google/pprof v0.0.0-20231229205709-960ae82b1e42
2525
github.com/google/uuid v1.6.0
2626
github.com/gorilla/mux v1.8.1
27-
github.com/grpc-ecosystem/go-grpc-middleware/providers/zerolog/v2 v2.0.0-rc.2
28-
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.0.0-rc.2
27+
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0
2928
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
3029
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0
3130
github.com/hashicorp/go-multierror v1.1.1
@@ -80,16 +79,16 @@ require (
8079
go.opentelemetry.io/otel/trace v1.22.0
8180
go.uber.org/atomic v1.11.0
8281
go.uber.org/multierr v1.11.0
83-
golang.org/x/crypto v0.18.0
82+
golang.org/x/crypto v0.19.0
8483
golang.org/x/exp v0.0.0-20240119083558-1b970713d09a
8584
golang.org/x/sync v0.6.0
86-
golang.org/x/sys v0.16.0
85+
golang.org/x/sys v0.17.0
8786
golang.org/x/text v0.14.0
88-
golang.org/x/time v0.3.0
87+
golang.org/x/time v0.5.0
8988
golang.org/x/tools v0.17.0
90-
google.golang.org/api v0.151.0
91-
google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917
92-
google.golang.org/grpc v1.60.1
89+
google.golang.org/api v0.160.0
90+
google.golang.org/genproto v0.0.0-20240205150955-31a09d347014
91+
google.golang.org/grpc v1.61.1
9392
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0
9493
google.golang.org/protobuf v1.32.0
9594
gotest.tools v2.2.0+incompatible
@@ -112,15 +111,15 @@ require (
112111
github.com/onflow/wal v0.0.0-20240208022732-d756cd497d3b
113112
github.com/slok/go-http-metrics v0.10.0
114113
github.com/sony/gobreaker v0.5.0
115-
google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1
116-
google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405
114+
google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe
115+
google.golang.org/genproto/googleapis/bytestream v0.0.0-20240116215550-a9fa1716bcac
117116
gopkg.in/yaml.v2 v2.4.0
118117
)
119118

120119
require (
121-
cloud.google.com/go v0.111.0 // indirect
122-
cloud.google.com/go/compute v1.23.3 // indirect
123-
cloud.google.com/go/iam v1.1.5 // indirect
120+
cloud.google.com/go v0.112.0 // indirect
121+
cloud.google.com/go/compute v1.23.4 // indirect
122+
cloud.google.com/go/iam v1.1.6 // indirect
124123
github.com/DataDog/zstd v1.5.2 // indirect
125124
github.com/Microsoft/go-winio v0.6.1 // indirect
126125
github.com/StackExchange/wmi v1.2.1 // indirect
@@ -166,6 +165,7 @@ require (
166165
github.com/elastic/gosigar v0.14.2 // indirect
167166
github.com/ethereum/c-kzg-4844 v0.4.0 // indirect
168167
github.com/felixge/fgprof v0.9.3 // indirect
168+
github.com/felixge/httpsnoop v1.0.4 // indirect
169169
github.com/flynn/noise v1.0.1 // indirect
170170
github.com/francoispqt/gojay v1.2.13 // indirect
171171
github.com/fsnotify/fsnotify v1.6.0 // indirect
@@ -296,6 +296,8 @@ require (
296296
github.com/yusufpapurcu/wmi v1.2.2 // indirect
297297
github.com/zeebo/blake3 v0.2.3 // indirect
298298
go.opencensus.io v0.24.0 // indirect
299+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect
300+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect
299301
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
300302
go.opentelemetry.io/otel/metric v1.22.0 // indirect
301303
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
@@ -304,13 +306,13 @@ require (
304306
go.uber.org/mock v0.4.0 // indirect
305307
go.uber.org/zap v1.26.0 // indirect
306308
golang.org/x/mod v0.14.0 // indirect
307-
golang.org/x/net v0.20.0 // indirect
309+
golang.org/x/net v0.21.0 // indirect
308310
golang.org/x/oauth2 v0.16.0 // indirect
309-
golang.org/x/term v0.16.0 // indirect
311+
golang.org/x/term v0.17.0 // indirect
310312
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
311313
gonum.org/v1/gonum v0.14.0 // indirect
312314
google.golang.org/appengine v1.6.8 // indirect
313-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 // indirect
315+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect
314316
gopkg.in/ini.v1 v1.67.0 // indirect
315317
gopkg.in/yaml.v3 v3.0.1 // indirect
316318
lukechampine.com/blake3 v1.2.1 // indirect

0 commit comments

Comments
 (0)