From a08cbee842fb5fb5ec67940ecdb08c09ced3fd59 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Tue, 4 Mar 2025 11:25:09 +0300 Subject: [PATCH] update to latest micro Signed-off-by: Vasiliy Tolstov --- go.mod | 10 ++++++---- go.sum | 14 ++++++++++++++ victoriametrics.go | 23 +++++------------------ victoriametrics_test.go | 22 ++++++++-------------- 4 files changed, 33 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 62ff1e9..16a3269 100644 --- a/go.mod +++ b/go.mod @@ -1,14 +1,16 @@ module go.unistack.org/micro-meter-victoriametrics/v4 -go 1.20 +go 1.22.0 + require ( - github.com/VictoriaMetrics/metrics v1.24.0 - go.unistack.org/micro/v4 v4.0.7 + github.com/VictoriaMetrics/metrics v1.35.2 + go.unistack.org/micro/v4 v4.1.2 ) require ( + github.com/spf13/cast v1.7.1 // indirect github.com/valyala/fastrand v1.1.0 // indirect github.com/valyala/histogram v1.2.0 // indirect - golang.org/x/sys v0.11.0 // indirect + golang.org/x/sys v0.30.0 // indirect ) diff --git a/go.sum b/go.sum index 4e1a74d..74a1b61 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,12 @@ github.com/VictoriaMetrics/metrics v1.23.1 h1:/j8DzeJBxSpL2qSIdqnRFLvQQhbJyJbbEi22yMm7oL0= github.com/VictoriaMetrics/metrics v1.24.0 h1:ILavebReOjYctAGY5QU2F9X0MYvkcrG3aEn2RKa1Zkw= github.com/VictoriaMetrics/metrics v1.24.0/go.mod h1:eFT25kvsTidQFHb6U0oa0rTrDRdz4xTYjpL8+UPohys= +github.com/VictoriaMetrics/metrics v1.35.1 h1:o84wtBKQbzLdDy14XeskkCZih6anG+veZ1SwJHFGwrU= +github.com/VictoriaMetrics/metrics v1.35.1/go.mod h1:r7hveu6xMdUACXvB8TYdAj8WEsKzWB0EkpJN+RDtOf8= +github.com/VictoriaMetrics/metrics v1.35.2 h1:Bj6L6ExfnakZKYPpi7mGUnkJP4NGQz2v5wiChhXNyWQ= +github.com/VictoriaMetrics/metrics v1.35.2/go.mod h1:r7hveu6xMdUACXvB8TYdAj8WEsKzWB0EkpJN+RDtOf8= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8= github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ= @@ -9,5 +15,13 @@ go.unistack.org/micro/v4 v4.0.1 h1:xo1IxbVfgh8i0eY0VeYa3cbb13u5n/Mxnp3FOgWD4Jo= go.unistack.org/micro/v4 v4.0.1/go.mod h1:p/J5UcSJjfHsWGT31uKoghQ5rUQZzQJBAFy+Z4+ZVMs= go.unistack.org/micro/v4 v4.0.7 h1:2lwtZlHcSwgkahhFbkI4x1lOS79lw8uLHtcEhlFF+AM= go.unistack.org/micro/v4 v4.0.7/go.mod h1:bVEYTlPi0EsdgZZt311bIroDg9ict7ky3C87dSCCAGk= +go.unistack.org/micro/v4 v4.0.20 h1:+DzI0l4L3pItOPWrM5oqiJP/hSpfS5kKKePmWXzDw0I= +go.unistack.org/micro/v4 v4.0.20/go.mod h1:5+da5r835gP0WnNZbYUJDCvWpJ9Xc3IEGyp62e8o8R4= +go.unistack.org/micro/v4 v4.1.2 h1:9SOlPYyPNNFpg1A7BsvhDyQm3gysLH1AhWbDCp1hyoY= +go.unistack.org/micro/v4 v4.1.2/go.mod h1:lr3oYED8Ay1vjK68QqRw30QOtdk/ffpZqMFDasOUhKw= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/victoriametrics.go b/victoriametrics.go index e862940..4d1893c 100644 --- a/victoriametrics.go +++ b/victoriametrics.go @@ -6,7 +6,6 @@ import ( "github.com/VictoriaMetrics/metrics" "go.unistack.org/micro/v4/meter" - "go.unistack.org/micro/v4/options" ) type victoriametricsMeter struct { @@ -14,7 +13,7 @@ type victoriametricsMeter struct { opts meter.Options } -func NewMeter(opts ...options.Option) meter.Meter { +func NewMeter(opts ...meter.Option) meter.Meter { return &victoriametricsMeter{set: metrics.NewSet(), opts: meter.NewOptions(opts...)} } @@ -22,7 +21,7 @@ func (r *victoriametricsMeter) Name() string { return r.opts.Name } -func (r *victoriametricsMeter) Clone(opts ...options.Option) meter.Meter { +func (r *victoriametricsMeter) Clone(opts ...meter.Option) meter.Meter { options := r.opts for _, o := range opts { o(&options) @@ -31,10 +30,6 @@ func (r *victoriametricsMeter) Clone(opts ...options.Option) meter.Meter { } func (r *victoriametricsMeter) buildName(name string, labels ...string) string { - if len(r.opts.MetricPrefix) > 0 { - name = r.opts.MetricPrefix + name - } - nl := len(r.opts.Labels) + len(labels) if nl == 0 { return name @@ -44,14 +39,6 @@ func (r *victoriametricsMeter) buildName(name string, labels ...string) string { nlabels = append(nlabels, r.opts.Labels...) nlabels = append(nlabels, labels...) - if len(r.opts.LabelPrefix) == 0 { - return meter.BuildName(name, nlabels...) - } - - for idx := 0; idx < nl; idx++ { - nlabels[idx] = r.opts.LabelPrefix + nlabels[idx] - idx++ - } return meter.BuildName(name, nlabels...) } @@ -79,7 +66,7 @@ func (r *victoriametricsMeter) SummaryExt(name string, window time.Duration, qua return r.set.GetOrCreateSummaryExt(r.buildName(name, labels...), window, quantiles) } -func (r *victoriametricsMeter) Set(opts ...options.Option) meter.Meter { +func (r *victoriametricsMeter) Set(opts ...meter.Option) meter.Meter { m := &victoriametricsMeter{opts: r.opts} for _, o := range opts { o(&m.opts) @@ -88,7 +75,7 @@ func (r *victoriametricsMeter) Set(opts ...options.Option) meter.Meter { return m } -func (r *victoriametricsMeter) Init(opts ...options.Option) error { +func (r *victoriametricsMeter) Init(opts ...meter.Option) error { for _, o := range opts { o(&r.opts) } @@ -96,7 +83,7 @@ func (r *victoriametricsMeter) Init(opts ...options.Option) error { return nil } -func (r *victoriametricsMeter) Write(w io.Writer, opts ...options.Option) error { +func (r *victoriametricsMeter) Write(w io.Writer, opts ...meter.Option) error { options := r.opts for _, o := range opts { o(&options) diff --git a/victoriametrics_test.go b/victoriametrics_test.go index b071da9..5be11c5 100644 --- a/victoriametrics_test.go +++ b/victoriametrics_test.go @@ -8,14 +8,13 @@ import ( "go.unistack.org/micro/v4/client" "go.unistack.org/micro/v4/codec" "go.unistack.org/micro/v4/meter" - "go.unistack.org/micro/v4/meter/wrapper" ) func TestBuildName(t *testing.T) { m := NewMeter() im := m.(*victoriametricsMeter) - check := `micro_foo{micro_aaa="b",micro_bar="baz",micro_ccc="d"}` - name := im.buildName("foo", "bar", "baz", "aaa", "b", "ccc", "d") + check := `micro_foo{aaa="b",bar="baz",ccc="d"}` + name := im.buildName("micro_foo", "bar", "baz", "aaa", "b", "ccc", "d") if name != check { t.Fatalf("metric name error: %s != %s", name, check) } @@ -25,18 +24,13 @@ func TestBuildName(t *testing.T) { } func TestWrapper(t *testing.T) { - m := NewMeter() // meter.Labels("test_key", "test_val")) - - w := wrapper.NewClientWrapper( - wrapper.ServiceName("svc1"), - wrapper.ServiceVersion("0.0.1"), - wrapper.ServiceID("12345"), - wrapper.Meter(m), - ) - + m := NewMeter() + if err := m.Init(); err != nil { + t.Fatal(err) + } ctx := context.Background() - c := client.NewClient(client.Wrap(w)) + c := client.NewClient(client.Meter(m)) if err := c.Init(); err != nil { t.Fatal(err) } @@ -46,7 +40,7 @@ func TestWrapper(t *testing.T) { _, _ = rsp, err buf := bytes.NewBuffer(nil) _ = m.Write(buf, meter.WriteProcessMetrics(false), meter.WriteFDMetrics(false)) - if !bytes.Contains(buf.Bytes(), []byte(`micro_client_request_inflight{micro_endpoint="svc2.Service.Method"} 0`)) { + if !bytes.Contains(buf.Bytes(), []byte(`micro_client_request_total{code="500",endpoint="Service.Method",status="failure"} 1`)) { t.Fatalf("invalid metrics output: %s", buf.Bytes()) } }