globaltracer.go 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. package opentracing
  2. var (
  3. globalTracer Tracer = NoopTracer{}
  4. )
  5. // SetGlobalTracer sets the [singleton] opentracing.Tracer returned by
  6. // GlobalTracer(). Those who use GlobalTracer (rather than directly manage an
  7. // opentracing.Tracer instance) should call SetGlobalTracer as early as
  8. // possible in main(), prior to calling the `StartSpan` global func below.
  9. // Prior to calling `SetGlobalTracer`, any Spans started via the `StartSpan`
  10. // (etc) globals are noops.
  11. func SetGlobalTracer(tracer Tracer) {
  12. globalTracer = tracer
  13. }
  14. // GlobalTracer returns the global singleton `Tracer` implementation.
  15. // Before `SetGlobalTracer()` is called, the `GlobalTracer()` is a noop
  16. // implementation that drops all data handed to it.
  17. func GlobalTracer() Tracer {
  18. return globalTracer
  19. }
  20. // StartSpan defers to `Tracer.StartSpan`. See `GlobalTracer()`.
  21. func StartSpan(operationName string, opts ...StartSpanOption) Span {
  22. return globalTracer.StartSpan(operationName, opts...)
  23. }
  24. // InitGlobalTracer is deprecated. Please use SetGlobalTracer.
  25. func InitGlobalTracer(tracer Tracer) {
  26. SetGlobalTracer(tracer)
  27. }