12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package opentracing
- import "github.com/opentracing/opentracing-go/log"
- // A NoopTracer is a trivial, minimum overhead implementation of Tracer
- // for which all operations are no-ops.
- //
- // The primary use of this implementation is in libraries, such as RPC
- // frameworks, that make tracing an optional feature controlled by the
- // end user. A no-op implementation allows said libraries to use it
- // as the default Tracer and to write instrumentation that does
- // not need to keep checking if the tracer instance is nil.
- //
- // For the same reason, the NoopTracer is the default "global" tracer
- // (see GlobalTracer and SetGlobalTracer functions).
- //
- // WARNING: NoopTracer does not support baggage propagation.
- type NoopTracer struct{}
- type noopSpan struct{}
- type noopSpanContext struct{}
- var (
- defaultNoopSpanContext SpanContext = noopSpanContext{}
- defaultNoopSpan Span = noopSpan{}
- defaultNoopTracer Tracer = NoopTracer{}
- )
- const (
- emptyString = ""
- )
- // noopSpanContext:
- func (n noopSpanContext) ForeachBaggageItem(handler func(k, v string) bool) {}
- // noopSpan:
- func (n noopSpan) Context() SpanContext { return defaultNoopSpanContext }
- func (n noopSpan) SetBaggageItem(key, val string) Span { return n }
- func (n noopSpan) BaggageItem(key string) string { return emptyString }
- func (n noopSpan) SetTag(key string, value interface{}) Span { return n }
- func (n noopSpan) LogFields(fields ...log.Field) {}
- func (n noopSpan) LogKV(keyVals ...interface{}) {}
- func (n noopSpan) Finish() {}
- func (n noopSpan) FinishWithOptions(opts FinishOptions) {}
- func (n noopSpan) SetOperationName(operationName string) Span { return n }
- func (n noopSpan) Tracer() Tracer { return defaultNoopTracer }
- func (n noopSpan) LogEvent(event string) {}
- func (n noopSpan) LogEventWithPayload(event string, payload interface{}) {}
- func (n noopSpan) Log(data LogData) {}
- // StartSpan belongs to the Tracer interface.
- func (n NoopTracer) StartSpan(operationName string, opts ...StartSpanOption) Span {
- return defaultNoopSpan
- }
- // Inject belongs to the Tracer interface.
- func (n NoopTracer) Inject(sp SpanContext, format interface{}, carrier interface{}) error {
- return nil
- }
- // Extract belongs to the Tracer interface.
- func (n NoopTracer) Extract(format interface{}, carrier interface{}) (SpanContext, error) {
- return nil, ErrSpanContextNotFound
- }
|