github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/pkg/util/spanlogger/noop.go (about)

     1  package spanlogger
     2  
     3  import (
     4  	opentracing "github.com/opentracing/opentracing-go"
     5  	"github.com/opentracing/opentracing-go/log"
     6  )
     7  
     8  type noopTracer struct{}
     9  
    10  type noopSpan struct{}
    11  type noopSpanContext struct{}
    12  
    13  var (
    14  	defaultNoopSpanContext = noopSpanContext{}
    15  	defaultNoopSpan        = noopSpan{}
    16  	defaultNoopTracer      = noopTracer{}
    17  )
    18  
    19  const (
    20  	emptyString = ""
    21  )
    22  
    23  func (n noopSpanContext) ForeachBaggageItem(handler func(k, v string) bool) {}
    24  
    25  func (n noopSpan) Context() opentracing.SpanContext                       { return defaultNoopSpanContext }
    26  func (n noopSpan) SetBaggageItem(key, val string) opentracing.Span        { return defaultNoopSpan }
    27  func (n noopSpan) BaggageItem(key string) string                          { return emptyString }
    28  func (n noopSpan) SetTag(key string, value interface{}) opentracing.Span  { return n }
    29  func (n noopSpan) LogFields(fields ...log.Field)                          {}
    30  func (n noopSpan) LogKV(keyVals ...interface{})                           {}
    31  func (n noopSpan) Finish()                                                {}
    32  func (n noopSpan) FinishWithOptions(opts opentracing.FinishOptions)       {}
    33  func (n noopSpan) SetOperationName(operationName string) opentracing.Span { return n }
    34  func (n noopSpan) Tracer() opentracing.Tracer                             { return defaultNoopTracer }
    35  func (n noopSpan) LogEvent(event string)                                  {}
    36  func (n noopSpan) LogEventWithPayload(event string, payload interface{})  {}
    37  func (n noopSpan) Log(data opentracing.LogData)                           {}
    38  
    39  // StartSpan belongs to the Tracer interface.
    40  func (n noopTracer) StartSpan(operationName string, opts ...opentracing.StartSpanOption) opentracing.Span {
    41  	return defaultNoopSpan
    42  }
    43  
    44  // Inject belongs to the Tracer interface.
    45  func (n noopTracer) Inject(sp opentracing.SpanContext, format interface{}, carrier interface{}) error {
    46  	return nil
    47  }
    48  
    49  // Extract belongs to the Tracer interface.
    50  func (n noopTracer) Extract(format interface{}, carrier interface{}) (opentracing.SpanContext, error) {
    51  	return nil, opentracing.ErrSpanContextNotFound
    52  }