diff --git a/meter/meter.go b/meter/meter.go index 76bb8f10..1c94b8be 100644 --- a/meter/meter.go +++ b/meter/meter.go @@ -3,8 +3,6 @@ package meter import ( "time" - - "github.com/unistack-org/micro/v3/metadata" ) var ( @@ -25,13 +23,13 @@ var ( // Meter is an interface for collecting and instrumenting metrics type Meter interface { Init(...Option) error - Counter(string, metadata.Metadata) Counter - FloatCounter(string, metadata.Metadata) FloatCounter - Gauge(string, func() float64, metadata.Metadata) Gauge - Set(metadata.Metadata) Meter - Histogram(string, metadata.Metadata) Histogram - Summary(string, metadata.Metadata) Summary - SummaryExt(string, time.Duration, []float64, metadata.Metadata) Summary + Counter(string, map[string]string) Counter + FloatCounter(string, map[string]string) FloatCounter + Gauge(string, func() float64, map[string]string) Gauge + Set(map[string]string) Meter + Histogram(string, map[string]string) Histogram + Summary(string, map[string]string) Summary + SummaryExt(string, time.Duration, []float64, map[string]string) Summary Options() Options String() string } diff --git a/meter/noop.go b/meter/noop.go index f16e0de3..f18f9fdf 100644 --- a/meter/noop.go +++ b/meter/noop.go @@ -9,7 +9,7 @@ import ( // NoopMeter is an noop implementation of Meter type noopMeter struct { opts Options - md metadata.Metadata + md map[string]string } // NewMeter returns a configured noop reporter: @@ -28,37 +28,37 @@ func (r *noopMeter) Init(opts ...Option) error { } // Counter implements the Meter interface -func (r *noopMeter) Counter(name string, md metadata.Metadata) Counter { +func (r *noopMeter) Counter(name string, md map[string]string) Counter { return &noopCounter{} } // FloatCounter implements the Meter interface -func (r *noopMeter) FloatCounter(name string, md metadata.Metadata) FloatCounter { +func (r *noopMeter) FloatCounter(name string, md map[string]string) FloatCounter { return &noopFloatCounter{} } // Gauge implements the Meter interface -func (r *noopMeter) Gauge(name string, f func() float64, md metadata.Metadata) Gauge { +func (r *noopMeter) Gauge(name string, f func() float64, md map[string]string) Gauge { return &noopGauge{} } // Summary implements the Meter interface -func (r *noopMeter) Summary(name string, md metadata.Metadata) Summary { +func (r *noopMeter) Summary(name string, md map[string]string) Summary { return &noopSummary{} } // SummaryExt implements the Meter interface -func (r *noopMeter) SummaryExt(name string, window time.Duration, quantiles []float64, md metadata.Metadata) Summary { +func (r *noopMeter) SummaryExt(name string, window time.Duration, quantiles []float64, md map[string]string) Summary { return &noopSummary{} } // Histogram implements the Meter interface -func (r *noopMeter) Histogram(name string, md metadata.Metadata) Histogram { +func (r *noopMeter) Histogram(name string, md map[string]string) Histogram { return &noopHistogram{} } // Set implements the Meter interface -func (r *noopMeter) Set(md metadata.Metadata) Meter { +func (r *noopMeter) Set(md map[string]string) Meter { return &noopMeter{opts: r.opts, md: metadata.Copy(md)} } diff --git a/meter/options.go b/meter/options.go index 5866c130..e6e6e10f 100644 --- a/meter/options.go +++ b/meter/options.go @@ -4,7 +4,6 @@ import ( "context" "github.com/unistack-org/micro/v3/logger" - "github.com/unistack-org/micro/v3/metadata" ) // Option powers the configuration for metrics implementations: @@ -14,7 +13,7 @@ type Option func(*Options) type Options struct { Address string Path string - Metadata metadata.Metadata + Metadata map[string]string //TimingObjectives map[float64]float64 Logger logger.Logger Context context.Context @@ -26,7 +25,7 @@ type Options struct { func NewOptions(opt ...Option) Options { opts := Options{ Address: DefaultAddress, - Metadata: metadata.New(3), // 3 elements contains service name, version and id + Metadata: make(map[string]string, 3), // 3 elements contains service name, version and id Path: DefaultPath, Context: context.Background(), Logger: logger.DefaultLogger, @@ -63,9 +62,11 @@ func Address(value string) Option { } // Metadata will be added to every metric -func Metadata(md metadata.Metadata) Option { +func Metadata(md map[string]string) Option { return func(o *Options) { - o.Metadata = metadata.Copy(md) + for k, v := range md { + o.Metadata[k] = v + } } }