tracer: add context to Options #168

Merged
vtolstov merged 1 commits from tracer into v3 2023-01-17 08:33:36 +03:00
2 changed files with 17 additions and 1 deletions

View File

@ -46,3 +46,13 @@ func NewSpanContext(ctx context.Context, span Span) context.Context {
} }
return context.WithValue(ctx, spanKey{}, span) return context.WithValue(ctx, spanKey{}, span)
} }
// SetOption returns a function to setup a context with given value
func SetOption(k, v interface{}) Option {
return func(o *Options) {
if o.Context == nil {
o.Context = context.Background()
}
o.Context = context.WithValue(o.Context, k, v)
}
}

View File

@ -1,6 +1,10 @@
package tracer package tracer
import "go.unistack.org/micro/v3/logger" import (
"context"
"go.unistack.org/micro/v3/logger"
)
// SpanOptions contains span option // SpanOptions contains span option
type SpanOptions struct { type SpanOptions struct {
@ -28,6 +32,8 @@ type Options struct {
Logger logger.Logger Logger logger.Logger
// Name of the tracer // Name of the tracer
Name string Name string
// Context used to store custome tracer options
Context context.Context
} }
// Option func signature // Option func signature