add tracer enabled status
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
		| @@ -46,6 +46,10 @@ func (s memoryStringer) String() string { | |||||||
| 	return s.s | 	return s.s | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (t *Tracer) Enabled() bool { | ||||||
|  | 	return t.opts.Enabled | ||||||
|  | } | ||||||
|  |  | ||||||
| func (t *Tracer) Flush(_ context.Context) error { | func (t *Tracer) Flush(_ context.Context) error { | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|   | |||||||
| @@ -20,6 +20,10 @@ func (t *noopTracer) Spans() []Span { | |||||||
|  |  | ||||||
| var uuidNil = uuid.Nil.String() | var uuidNil = uuid.Nil.String() | ||||||
|  |  | ||||||
|  | func (t *noopTracer) Enabled() bool { | ||||||
|  | 	return t.opts.Enabled | ||||||
|  | } | ||||||
|  |  | ||||||
| func (t *noopTracer) Start(ctx context.Context, name string, opts ...SpanOption) (context.Context, Span) { | func (t *noopTracer) Start(ctx context.Context, name string, opts ...SpanOption) (context.Context, Span) { | ||||||
| 	options := NewSpanOptions(opts...) | 	options := NewSpanOptions(opts...) | ||||||
| 	span := &noopSpan{ | 	span := &noopSpan{ | ||||||
|   | |||||||
| @@ -142,6 +142,8 @@ type Options struct { | |||||||
| 	Name string | 	Name string | ||||||
| 	// ContextAttrFuncs contains funcs that provides tracing | 	// ContextAttrFuncs contains funcs that provides tracing | ||||||
| 	ContextAttrFuncs []ContextAttrFunc | 	ContextAttrFuncs []ContextAttrFunc | ||||||
|  | 	// Enabled specify trace status | ||||||
|  | 	Enabled bool | ||||||
| } | } | ||||||
|  |  | ||||||
| // Option func signature | // Option func signature | ||||||
| @@ -181,6 +183,7 @@ func NewOptions(opts ...Option) Options { | |||||||
| 		Logger:           logger.DefaultLogger, | 		Logger:           logger.DefaultLogger, | ||||||
| 		Context:          context.Background(), | 		Context:          context.Background(), | ||||||
| 		ContextAttrFuncs: DefaultContextAttrFuncs, | 		ContextAttrFuncs: DefaultContextAttrFuncs, | ||||||
|  | 		Enabled:          true, | ||||||
| 	} | 	} | ||||||
| 	for _, o := range opts { | 	for _, o := range opts { | ||||||
| 		o(&options) | 		o(&options) | ||||||
| @@ -194,3 +197,10 @@ func Name(n string) Option { | |||||||
| 		o.Name = n | 		o.Name = n | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // Disabled disable tracer | ||||||
|  | func Disabled(b bool) Option { | ||||||
|  | 	return func(o *Options) { | ||||||
|  | 		o.Enabled = !b | ||||||
|  | 	} | ||||||
|  | } | ||||||
|   | |||||||
| @@ -51,6 +51,8 @@ type Tracer interface { | |||||||
| 	// Extract(ctx context.Context) | 	// Extract(ctx context.Context) | ||||||
| 	// Flush flushes spans | 	// Flush flushes spans | ||||||
| 	Flush(ctx context.Context) error | 	Flush(ctx context.Context) error | ||||||
|  | 	// Enabled returns tracer status | ||||||
|  | 	Enabled() bool | ||||||
| } | } | ||||||
|  |  | ||||||
| type Span interface { | type Span interface { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user