12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package opentracing
- type registeredTracer struct {
- tracer Tracer
- isRegistered bool
- }
- var (
- globalTracer = registeredTracer{NoopTracer{}, false}
- )
- // SetGlobalTracer sets the [singleton] opentracing.Tracer returned by
- // GlobalTracer(). Those who use GlobalTracer (rather than directly manage an
- // opentracing.Tracer instance) should call SetGlobalTracer as early as
- // possible in main(), prior to calling the `StartSpan` global func below.
- // Prior to calling `SetGlobalTracer`, any Spans started via the `StartSpan`
- // (etc) globals are noops.
- func SetGlobalTracer(tracer Tracer) {
- globalTracer = registeredTracer{tracer, true}
- }
- // GlobalTracer returns the global singleton `Tracer` implementation.
- // Before `SetGlobalTracer()` is called, the `GlobalTracer()` is a noop
- // implementation that drops all data handed to it.
- func GlobalTracer() Tracer {
- return globalTracer.tracer
- }
- // StartSpan defers to `Tracer.StartSpan`. See `GlobalTracer()`.
- func StartSpan(operationName string, opts ...StartSpanOption) Span {
- return globalTracer.tracer.StartSpan(operationName, opts...)
- }
- // InitGlobalTracer is deprecated. Please use SetGlobalTracer.
- func InitGlobalTracer(tracer Tracer) {
- SetGlobalTracer(tracer)
- }
- // IsGlobalTracerRegistered returns a `bool` to indicate if a tracer has been globally registered
- func IsGlobalTracerRegistered() bool {
- return globalTracer.isRegistered
- }
|