gitee.com/woood2/luca@v1.0.4/cmd/consumer/internal/middleware/trace.go (about) 1 package middleware 2 3 import ( 4 "context" 5 "gitee.com/woood2/luca/cmd/consumer/internal/subscriber" 6 "gitee.com/woood2/luca/internal/trace" 7 "github.com/Shopify/sarama" 8 "github.com/openzipkin/zipkin-go" 9 "go.uber.org/zap" 10 ) 11 12 func Trace(name string, logger *zap.Logger) subscriber.MsgMiddleware { 13 return func(next subscriber.MsgHandler) subscriber.MsgHandler { 14 return func(ctx context.Context, msg *sarama.ConsumerMessage, retry int)(commit bool) { 15 span:=trace.StartSpan(name) 16 defer span.Finish() 17 ctx=zipkin.NewContext(ctx, span) 18 return next(ctx, msg, retry) 19 } 20 } 21 }