diff --git a/integration/gotsrpc/net/middleware/telemetry.go b/integration/gotsrpc/net/middleware/telemetry.go index 8fed1c4..17c927a 100644 --- a/integration/gotsrpc/net/middleware/telemetry.go +++ b/integration/gotsrpc/net/middleware/telemetry.go @@ -37,8 +37,12 @@ func Telemetry() middleware.Middleware { return func(l *zap.Logger, name string, next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { *r = *gotsrpc.RequestWithStatsContext(r) - ctx, labeler := middleware.LoggerLabelerFromContext(r.Context()) - next.ServeHTTP(w, r.WithContext(ctx)) + + // retrieve or inject labeler + r, labeler := middleware.LoggerLabelerFromRequest(r) + + next.ServeHTTP(w, r) + if stats, ok := gotsrpc.GetStatsForRequest(r); ok { labeler.Add( zap.String(defaultGOTSRPCFunctionLabel, stats.Func), diff --git a/net/http/middleware/logger.go b/net/http/middleware/logger.go index aaea0ab..380ce05 100644 --- a/net/http/middleware/logger.go +++ b/net/http/middleware/logger.go @@ -15,10 +15,9 @@ const loggerLabelerContextKey log.LabelerContextKey = "github.com/foomo/keel/net type ( LoggerOptions struct { - Message string - MinWarnCode int - MinErrorCode int - InjectLabeler bool + Message string + MinWarnCode int + MinErrorCode int } LoggerOption func(*LoggerOptions) ) @@ -26,10 +25,9 @@ type ( // GetDefaultLoggerOptions returns the default options func GetDefaultLoggerOptions() LoggerOptions { return LoggerOptions{ - Message: "handled http request", - MinWarnCode: 400, - MinErrorCode: 500, - InjectLabeler: false, + Message: "handled http request", + MinWarnCode: 400, + MinErrorCode: 500, } } @@ -65,13 +63,6 @@ func LoggerWithMinErrorCode(v int) LoggerOption { } } -// LoggerWithInjectLabeler middleware option -func LoggerWithInjectLabeler(v bool) LoggerOption { - return func(o *LoggerOptions) { - o.InjectLabeler = v - } -} - // LoggerWithOptions middleware func LoggerWithOptions(opts LoggerOptions) Middleware { return func(l *zap.Logger, name string, next http.Handler) http.Handler { @@ -83,11 +74,8 @@ func LoggerWithOptions(opts LoggerOptions) Middleware { l := log.WithHTTPRequest(l, r) - var labeler *log.Labeler - - if opts.InjectLabeler { - r, labeler = LoggerLabelerFromRequest(r) - } + // retrieve or inject labeler + r, labeler := LoggerLabelerFromRequest(r) next.ServeHTTP(wr, r) diff --git a/net/http/middleware/logger_test.go b/net/http/middleware/logger_test.go index faf7d3b..da47b2f 100644 --- a/net/http/middleware/logger_test.go +++ b/net/http/middleware/logger_test.go @@ -7,7 +7,6 @@ import ( "github.com/foomo/keel/log" "github.com/foomo/keel/net/http/middleware" keeltest "github.com/foomo/keel/test" - "go.uber.org/zap" ) func ExampleLogger() { @@ -38,41 +37,3 @@ func ExampleLogger() { // Output: ok } - -func ExampleLoggerWithInjectLabeler() { - svr := keeltest.NewServer() - - // get logger - l := svr.Logger() - - // create demo service - svs := http.NewServeMux() - svs.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusOK) - _, _ = w.Write([]byte("ok")) - fmt.Println("ok") - }) - - svr.AddService( - keeltest.NewServiceHTTP(l, "demo", svs, - func(l *zap.Logger, s string, next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - r, labeler := middleware.LoggerLabelerFromRequest(r) - labeler.Add(zap.String("injected", "message")) - next.ServeHTTP(w, r) - }) - }, - middleware.Logger( - middleware.LoggerWithInjectLabeler(true), - ), - ), - ) - - svr.Start() - - resp, err := http.Get(svr.GetService("demo").URL() + "/") //nolint:noctx - log.Must(l, err) - defer resp.Body.Close() - - // Output: ok -}