update for latest micro

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2021-04-28 01:13:08 +03:00
parent e4b207de2a
commit 874552803e
4 changed files with 35 additions and 36 deletions

2
go.mod
View File

@ -4,5 +4,5 @@ go 1.16
require ( require (
github.com/VictoriaMetrics/metrics v1.17.2 github.com/VictoriaMetrics/metrics v1.17.2
github.com/unistack-org/micro/v3 v3.3.16 github.com/unistack-org/micro/v3 v3.3.17
) )

8
go.sum
View File

@ -8,15 +8,15 @@ github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/silas/dag v0.0.0-20210121180416-41cf55125c34/go.mod h1:7RTUFBdIRC9nZ7/3RyRNH1bdqIShrDejd1YbLwgPS+I= github.com/silas/dag v0.0.0-20210121180416-41cf55125c34/go.mod h1:7RTUFBdIRC9nZ7/3RyRNH1bdqIShrDejd1YbLwgPS+I=
github.com/unistack-org/micro/v3 v3.3.16 h1:v0h/oC0TO2n1djQJeOjD2jNEqKkiykwI6cpflEVTlQE= github.com/unistack-org/micro/v3 v3.3.17 h1:WcyS7InP0DlS/JpRQGLh5sG6VstkdHJbgpMp+gmHmwg=
github.com/unistack-org/micro/v3 v3.3.16/go.mod h1:ETGcQQUcjxGaD44LUMX+0fgo8Loh7ExldfIPLvfUmDo= github.com/unistack-org/micro/v3 v3.3.17/go.mod h1:022EOEZZ789hZY3yB5ZSMXU6jLiadBgcNB/cpediV3c=
github.com/valyala/fastrand v1.0.0 h1:LUKT9aKer2dVQNUi3waewTbKV+7H17kvWFNKs2ObdkI= github.com/valyala/fastrand v1.0.0 h1:LUKT9aKer2dVQNUi3waewTbKV+7H17kvWFNKs2ObdkI=
github.com/valyala/fastrand v1.0.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= github.com/valyala/fastrand v1.0.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
github.com/valyala/histogram v1.1.2 h1:vOk5VrGjMBIoPR5k6wA8vBaC8toeJ8XO0yfRjFEc1h8= github.com/valyala/histogram v1.1.2 h1:vOk5VrGjMBIoPR5k6wA8vBaC8toeJ8XO0yfRjFEc1h8=
github.com/valyala/histogram v1.1.2/go.mod h1:CZAr6gK9dbD7hYx2s8WSPh0p5x5wETjC+2b3PJVtEdg= github.com/valyala/histogram v1.1.2/go.mod h1:CZAr6gK9dbD7hYx2s8WSPh0p5x5wETjC+2b3PJVtEdg=
golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

View File

@ -22,35 +22,31 @@ func (r *victoriametricsMeter) Name() string {
return r.opts.Name return r.opts.Name
} }
func (r *victoriametricsMeter) buildName(name string, opts ...meter.Option) string { func (r *victoriametricsMeter) buildName(name string, labels ...string) string {
var b strings.Builder var b strings.Builder
options := r.opts labels = append(r.opts.Labels, labels...)
for _, o := range opts { if len(r.opts.MetricPrefix) > 0 {
o(&options) _, _ = b.WriteString(r.opts.MetricPrefix)
}
if len(options.MetricPrefix) > 0 {
_, _ = b.WriteString(options.MetricPrefix)
} }
labelPrefix := false labelPrefix := false
if len(options.LabelPrefix) > 0 { if len(r.opts.LabelPrefix) > 0 {
labelPrefix = true labelPrefix = true
} }
_, _ = b.WriteString(name) _, _ = b.WriteString(name)
if len(options.Labels) > 0 { if len(labels) > 0 {
meter.Sort(&options.Labels) meter.Sort(&labels)
_, _ = b.WriteRune('{') _, _ = b.WriteRune('{')
for idx := 0; idx < len(options.Labels); idx += 2 { for idx := 0; idx < len(labels); idx += 2 {
if idx > 0 { if idx > 0 {
_, _ = b.WriteRune(',') _, _ = b.WriteRune(',')
} }
if labelPrefix { if labelPrefix {
_, _ = b.WriteString(options.LabelPrefix) _, _ = b.WriteString(r.opts.LabelPrefix)
} }
_, _ = b.WriteString(options.Labels[idx]) _, _ = b.WriteString(labels[idx])
_, _ = b.WriteString(`="`) _, _ = b.WriteString(`="`)
_, _ = b.WriteString(options.Labels[idx+1]) _, _ = b.WriteString(labels[idx+1])
_, _ = b.WriteString(`"`) _, _ = b.WriteString(`"`)
} }
_, _ = b.WriteRune('}') _, _ = b.WriteRune('}')
@ -59,32 +55,36 @@ func (r *victoriametricsMeter) buildName(name string, opts ...meter.Option) stri
return b.String() return b.String()
} }
func (r *victoriametricsMeter) Counter(name string, opts ...meter.Option) meter.Counter { func (r *victoriametricsMeter) Counter(name string, labels ...string) meter.Counter {
return r.set.GetOrCreateCounter(r.buildName(name, opts...)) return r.set.GetOrCreateCounter(r.buildName(name, labels...))
} }
func (r *victoriametricsMeter) FloatCounter(name string, opts ...meter.Option) meter.FloatCounter { func (r *victoriametricsMeter) FloatCounter(name string, labels ...string) meter.FloatCounter {
return r.set.GetOrCreateFloatCounter(r.buildName(name, opts...)) return r.set.GetOrCreateFloatCounter(r.buildName(name, labels...))
} }
func (r *victoriametricsMeter) Gauge(name string, f func() float64, opts ...meter.Option) meter.Gauge { func (r *victoriametricsMeter) Gauge(name string, f func() float64, labels ...string) meter.Gauge {
return r.set.GetOrCreateGauge(r.buildName(name, opts...), f) return r.set.GetOrCreateGauge(r.buildName(name, labels...), f)
} }
func (r *victoriametricsMeter) Histogram(name string, opts ...meter.Option) meter.Histogram { func (r *victoriametricsMeter) Histogram(name string, labels ...string) meter.Histogram {
return r.set.GetOrCreateHistogram(r.buildName(name, opts...)) return r.set.GetOrCreateHistogram(r.buildName(name, labels...))
} }
func (r *victoriametricsMeter) Summary(name string, opts ...meter.Option) meter.Summary { func (r *victoriametricsMeter) Summary(name string, labels ...string) meter.Summary {
return r.set.GetOrCreateSummary(r.buildName(name, opts...)) return r.set.GetOrCreateSummary(r.buildName(name, labels...))
} }
func (r *victoriametricsMeter) SummaryExt(name string, window time.Duration, quantiles []float64, opts ...meter.Option) meter.Summary { func (r *victoriametricsMeter) SummaryExt(name string, window time.Duration, quantiles []float64, labels ...string) meter.Summary {
return r.set.GetOrCreateSummaryExt(r.buildName(name, opts...), window, quantiles) return r.set.GetOrCreateSummaryExt(r.buildName(name, labels...), window, quantiles)
} }
func (r *victoriametricsMeter) Set(opts ...meter.Option) meter.Meter { func (r *victoriametricsMeter) Set(opts ...meter.Option) meter.Meter {
m := &victoriametricsMeter{opts: meter.NewOptions(opts...), set: metrics.NewSet()} m := &victoriametricsMeter{opts: r.opts}
for _, o := range opts {
o(&m.opts)
}
m.set = metrics.NewSet()
return m return m
} }

View File

@ -6,7 +6,6 @@ import (
"github.com/unistack-org/micro/v3/client" "github.com/unistack-org/micro/v3/client"
"github.com/unistack-org/micro/v3/codec" "github.com/unistack-org/micro/v3/codec"
"github.com/unistack-org/micro/v3/meter"
"github.com/unistack-org/micro/v3/meter/wrapper" "github.com/unistack-org/micro/v3/meter/wrapper"
) )
@ -14,12 +13,12 @@ func TestBuildName(t *testing.T) {
m := NewMeter() m := NewMeter()
im := m.(*victoriametricsMeter) im := m.(*victoriametricsMeter)
check := `micro_foo{micro_aaa="b",micro_bar="baz"}` check := `micro_foo{micro_aaa="b",micro_bar="baz"}`
name := im.buildName("foo", meter.Labels("bar", "baz", "aaa", "b")) name := im.buildName("foo", "bar", "baz", "aaa", "b")
if name != check { if name != check {
t.Fatalf("metric name error: %s != %s", name, check) t.Fatalf("metric name error: %s != %s", name, check)
} }
cnt := m.Counter("counter", meter.Labels("key", "val")) cnt := m.Counter("counter", "key", "val")
cnt.Inc() cnt.Inc()
//m.Write(os.Stdout, meter.WriteProcessMetrics(true), meter.WriteFDMetrics(true)) //m.Write(os.Stdout, meter.WriteProcessMetrics(true), meter.WriteFDMetrics(true))
} }