add tracer enabled status
Some checks failed
coverage / build (push) Successful in 2m52s
test / test (push) Failing after 18m53s
sync / sync (push) Successful in 26s

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2025-05-19 09:33:01 +03:00
parent 8b406cf963
commit 0f8f12aee0
4 changed files with 20 additions and 0 deletions

View File

@@ -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
} }

View File

@@ -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{

View File

@@ -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
}
}

View File

@@ -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 {