nop.go 901 B

1234567891011121314151617181920212223242526272829303132
  1. package tracing
  2. import "context"
  3. // NopTracerProvider is a no-op tracing implementation.
  4. type NopTracerProvider struct{}
  5. var _ TracerProvider = (*NopTracerProvider)(nil)
  6. // Tracer returns a tracer which creates no-op spans.
  7. func (NopTracerProvider) Tracer(string, ...TracerOption) Tracer {
  8. return nopTracer{}
  9. }
  10. type nopTracer struct{}
  11. var _ Tracer = (*nopTracer)(nil)
  12. func (nopTracer) StartSpan(ctx context.Context, name string, opts ...SpanOption) (context.Context, Span) {
  13. return ctx, nopSpan{}
  14. }
  15. type nopSpan struct{}
  16. var _ Span = (*nopSpan)(nil)
  17. func (nopSpan) Name() string { return "" }
  18. func (nopSpan) Context() SpanContext { return SpanContext{} }
  19. func (nopSpan) AddEvent(string, ...EventOption) {}
  20. func (nopSpan) SetProperty(any, any) {}
  21. func (nopSpan) SetStatus(SpanStatus) {}
  22. func (nopSpan) End() {}