tracer: add context to Options #168
@@ -46,3 +46,13 @@ func NewSpanContext(ctx context.Context, span Span) context.Context {
 | 
			
		||||
	}
 | 
			
		||||
	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)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,10 @@
 | 
			
		||||
package tracer
 | 
			
		||||
 | 
			
		||||
import "go.unistack.org/micro/v3/logger"
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
 | 
			
		||||
	"go.unistack.org/micro/v3/logger"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// SpanOptions contains span option
 | 
			
		||||
type SpanOptions struct {
 | 
			
		||||
@@ -28,6 +32,8 @@ type Options struct {
 | 
			
		||||
	Logger logger.Logger
 | 
			
		||||
	// Name of the tracer
 | 
			
		||||
	Name string
 | 
			
		||||
	// Context used to store custome tracer options
 | 
			
		||||
	Context context.Context
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Option func signature
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user