mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-28 23:19:41 -08:00
ddefee52dc
Note that by just running `make update-go-deps`, the K8s Go client was set to `k8s.io/client-go v11.0.0+incompatible`. However, that doesn't play well with `k8s.io/apimachinery v0.18.5`. I the manually changed the Go client line to `k8s.io/client-go v0.18.5`, which made everything work. I guess Go Modules got confused by the ginormous v11.0.0 version tag. Or it is a problem that pulling k8s.io/client-go with git results in a rather old repo without the v0.18.5 tag. github.com/kubernetes/client-go has all the right tags. I actually don't understand how Go Modules still correctly figures out the source from the `k8s.io/client-go v0.18.5` line. If one of the reviewers could enlighten me, I'd much appreciate it. Signed-off-by: beorn7 <beorn@grafana.com>
65 lines
2.6 KiB
Go
65 lines
2.6 KiB
Go
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
|
|
}
|