diff --git a/metrics/options.go b/metrics/options.go index 1b285ebf..b099bfd2 100644 --- a/metrics/options.go +++ b/metrics/options.go @@ -1,6 +1,8 @@ package metrics import ( + "context" + "github.com/unistack-org/micro/v3/logger" "github.com/unistack-org/micro/v3/metadata" ) @@ -24,6 +26,7 @@ type Options struct { DefaultTags metadata.Metadata TimingObjectives map[float64]float64 Logger logger.Logger + Context context.Context } // NewOptions prepares a set of options: @@ -33,6 +36,7 @@ func NewOptions(opt ...Option) Options { DefaultTags: metadata.New(2), Path: defaultPath, TimingObjectives: defaultTimingObjectives, + Context: context.Background(), } for _, o := range opt { @@ -42,6 +46,13 @@ func NewOptions(opt ...Option) Options { return opts } +// Cntext sets the metrics context +func Context(ctx context.Context) Option { + return func(o *Options) { + o.Context = ctx + } +} + // Path used to serve metrics over HTTP: func Path(value string) Option { return func(o *Options) {