From ff52335b8b560e18d9f568ac2f64b7480a94eecf Mon Sep 17 00:00:00 2001 From: Coleen Iona Quadros Date: Mon, 11 Sep 2023 11:30:10 +0200 Subject: [PATCH] refactor adding log fields Signed-off-by: Coleen Iona Quadros --- interceptors/logging/examples/go.mod | 10 +++++----- interceptors/logging/examples/go.sum | 5 +++++ interceptors/logging/interceptors.go | 2 +- interceptors/logging/interceptors_test.go | 14 ++++---------- interceptors/logging/options.go | 17 +++-------------- 5 files changed, 18 insertions(+), 30 deletions(-) diff --git a/interceptors/logging/examples/go.mod b/interceptors/logging/examples/go.mod index 49d4a3e2c..984e9c48f 100644 --- a/interceptors/logging/examples/go.mod +++ b/interceptors/logging/examples/go.mod @@ -10,7 +10,7 @@ require ( github.com/rs/zerolog v1.29.0 github.com/sirupsen/logrus v1.9.0 go.uber.org/zap v1.24.0 - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 + golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 google.golang.org/grpc v1.53.0 k8s.io/klog/v2 v2.90.1 ) @@ -22,11 +22,11 @@ require ( github.com/mattn/go-isatty v0.0.14 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - golang.org/x/net v0.8.0 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/text v0.8.0 // indirect + golang.org/x/net v0.14.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/text v0.12.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect ) replace github.com/grpc-ecosystem/go-grpc-middleware/v2 => ../../../ diff --git a/interceptors/logging/examples/go.sum b/interceptors/logging/examples/go.sum index 04c905451..ff873eb00 100644 --- a/interceptors/logging/examples/go.sum +++ b/interceptors/logging/examples/go.sum @@ -44,15 +44,19 @@ go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= @@ -62,6 +66,7 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/interceptors/logging/interceptors.go b/interceptors/logging/interceptors.go index c073d34a7..28c88991d 100644 --- a/interceptors/logging/interceptors.go +++ b/interceptors/logging/interceptors.go @@ -143,7 +143,7 @@ func reportable(logger Logger, opts *options) interceptors.CommonReportableFunc fields := Fields{} if opts.grpcLogFields != nil { - fields = fields.WithUnique(customCommonFields(kind, c, opts.grpcLogFields())) + fields = fields.WithUnique(customCommonFields(kind, c, opts.grpcLogFields)) } else { // Field dups from context override the common fields. fields = newCommonFields(kind, c) diff --git a/interceptors/logging/interceptors_test.go b/interceptors/logging/interceptors_test.go index 94ecd21ff..48b7eae85 100644 --- a/interceptors/logging/interceptors_test.go +++ b/interceptors/logging/interceptors_test.go @@ -630,12 +630,6 @@ func (s *loggingPayloadSuite) assertPayloadLogLinesForMessage(lines LogLines, me } } -func addGrpcLogFields() []string { - return []string{ - logging.MethodFieldKey, logging.ServiceFieldKey, "should-not-be-added", - } -} - type loggingCustomGrpcLogFieldsSuite struct { *baseLoggingSuite } @@ -654,12 +648,12 @@ func TestCustomGrpcLogFieldsSuite(t *testing.T) { }, } s.InterceptorTestSuite.ClientOpts = []grpc.DialOption{ - grpc.WithUnaryInterceptor(logging.UnaryClientInterceptor(s.logger, logging.WithGrpcLogFields(addGrpcLogFields))), - grpc.WithStreamInterceptor(logging.StreamClientInterceptor(s.logger, logging.WithGrpcLogFields(addGrpcLogFields))), + grpc.WithUnaryInterceptor(logging.UnaryClientInterceptor(s.logger, logging.WithGrpcLogFields(logging.MethodFieldKey, logging.ServiceFieldKey, "custom-field-should-not-be-added"))), + grpc.WithStreamInterceptor(logging.StreamClientInterceptor(s.logger, logging.WithGrpcLogFields(logging.MethodFieldKey, logging.ServiceFieldKey, "custom-field-should-not-be-added"))), } s.InterceptorTestSuite.ServerOpts = []grpc.ServerOption{ - grpc.StreamInterceptor(logging.StreamServerInterceptor(s.logger, logging.WithGrpcLogFields(addGrpcLogFields))), - grpc.UnaryInterceptor(logging.UnaryServerInterceptor(s.logger, logging.WithGrpcLogFields(addGrpcLogFields))), + grpc.StreamInterceptor(logging.StreamServerInterceptor(s.logger, logging.WithGrpcLogFields(logging.MethodFieldKey, logging.ServiceFieldKey, "custom-field-should-not-be-added"))), + grpc.UnaryInterceptor(logging.UnaryServerInterceptor(s.logger, logging.WithGrpcLogFields(logging.MethodFieldKey, logging.ServiceFieldKey, "custom-field-should-not-be-added"))), } suite.Run(t, s) } diff --git a/interceptors/logging/options.go b/interceptors/logging/options.go index 9bcd72399..c1ba1d0d6 100644 --- a/interceptors/logging/options.go +++ b/interceptors/logging/options.go @@ -61,7 +61,7 @@ type options struct { durationFieldFunc DurationToFields timestampFormat string fieldsFromCtxCallMetaFn fieldsFromCtxCallMetaFn - grpcLogFields AddGrpcLogFields + grpcLogFields []string } type Option func(*options) @@ -207,20 +207,9 @@ func WithTimestampFormat(format string) Option { } } -// AddGrpcLogFields customizes the function for adding gRPC fields to the log entry from the below list. -// -// -SystemTag[0], -// -ComponentFieldKey, -// -ServiceFieldKey, -// -MethodFieldKey, -// -MethodTypeFieldKey, -// -// If not provided default fields will be used. -type AddGrpcLogFields func() []string - // WithAddGrpcLogFields customizes the function for adding gRPC fields to the log entry. -func WithGrpcLogFields(f AddGrpcLogFields) Option { +func WithGrpcLogFields(enableGrpcLogFields ...string) Option { return func(o *options) { - o.grpcLogFields = f + o.grpcLogFields = enableGrpcLogFields } }