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  }