diff --git a/.gitea/ISSUE_TEMPLATE/bug_report.md b/.gitea/ISSUE_TEMPLATE/bug_report.md index 1899438..a77fdfd 100644 --- a/.gitea/ISSUE_TEMPLATE/bug_report.md +++ b/.gitea/ISSUE_TEMPLATE/bug_report.md @@ -1,6 +1,6 @@ --- name: Bug report -about: For reporting bugs in go-micro +about: For reporting bugs in micro title: "[BUG]" labels: '' assignees: '' @@ -16,9 +16,3 @@ assignees: '' **How to reproduce the bug:** If possible, please include a minimal code snippet here. - -**Environment:** -Go Version: please paste `go version` output here -``` -please paste `go env` output here -``` diff --git a/.gitea/ISSUE_TEMPLATE/feature-request---enhancement.md b/.gitea/ISSUE_TEMPLATE/feature-request---enhancement.md index 459817f..c722ea6 100644 --- a/.gitea/ISSUE_TEMPLATE/feature-request---enhancement.md +++ b/.gitea/ISSUE_TEMPLATE/feature-request---enhancement.md @@ -1,6 +1,6 @@ --- name: Feature request / Enhancement -about: If you have a need not served by go-micro +about: If you have a need not served by micro title: "[FEATURE]" labels: '' assignees: '' @@ -14,4 +14,4 @@ A clear and concise description of what the problem is. Ex. I'm always frustrate A clear and concise description of what you want to happen. **Additional context** -Add any other context or screenshots about the feature request here. +Add any other context or screenshots about the feature request here. \ No newline at end of file diff --git a/.gitea/ISSUE_TEMPLATE/question.md b/.gitea/ISSUE_TEMPLATE/question.md index 1daf48b..3d65c72 100644 --- a/.gitea/ISSUE_TEMPLATE/question.md +++ b/.gitea/ISSUE_TEMPLATE/question.md @@ -1,14 +1,8 @@ --- name: Question -about: Ask a question about go-micro +about: Ask a question about micro title: '' labels: '' assignees: '' ---- - -Before asking, please check if your question has already been answered: - -1. Check the documentation - https://micro.mu/docs/ -2. Check the examples and plugins - https://github.com/micro/examples & https://github.com/micro/go-plugins -3. Search existing issues +--- \ No newline at end of file diff --git a/go.mod b/go.mod index 2731437..c727de2 100644 --- a/go.mod +++ b/go.mod @@ -1,22 +1,24 @@ module go.unistack.org/micro-meter-prometheus/v4 -go 1.21 +go 1.22.0 -toolchain go1.22.0 +toolchain go1.24.0 require ( - github.com/prometheus/client_golang v1.19.0 - github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.51.1 - go.unistack.org/micro/v4 v4.0.19 + github.com/prometheus/client_golang v1.21.0 + github.com/prometheus/client_model v0.6.1 + github.com/prometheus/common v0.62.0 + go.unistack.org/micro/v4 v4.1.2 ) require ( github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/prometheus/procfs v0.13.0 // indirect - golang.org/x/sys v0.18.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/spf13/cast v1.7.1 // indirect + golang.org/x/sys v0.30.0 // indirect + google.golang.org/protobuf v1.36.5 // indirect ) diff --git a/go.sum b/go.sum index 305e30e..a0d9650 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -20,6 +22,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zk github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= @@ -27,34 +31,48 @@ github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626 github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= +github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.41.0 h1:npo01n6vUlRViIj5fgwiK8vlNIh8bnoxqh3gypKsyAw= github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/common v0.51.1 h1:eIjN50Bwglz6a/c3hAgSMcofL3nD+nFQkV6Dd4DsQCw= github.com/prometheus/common v0.51.1/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= 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.19 h1:TrOJ+j0D1ZHwLEDUabei4ciLzJh/StDWiw4FQBCstY8= go.unistack.org/micro/v4 v4.0.19/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/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= 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.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.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= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= @@ -63,4 +81,6 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/prometheus.go b/prometheus.go index 75a6859..5008a14 100644 --- a/prometheus.go +++ b/prometheus.go @@ -13,7 +13,6 @@ import ( dto "github.com/prometheus/client_model/go" "github.com/prometheus/common/expfmt" "go.unistack.org/micro/v4/meter" - "go.unistack.org/micro/v4/options" ) var _ meter.Meter = &prometheusMeter{} @@ -61,7 +60,7 @@ func newString(v string) *string { return &nv } -func NewMeter(opts ...options.Option) *prometheusMeter { +func NewMeter(opts ...meter.Option) *prometheusMeter { return &prometheusMeter{ set: prometheus.NewRegistry(), // prometheus.DefaultRegisterer, opts: meter.NewOptions(opts...), @@ -74,10 +73,6 @@ func NewMeter(opts ...options.Option) *prometheusMeter { } func (m *prometheusMeter) buildMetric(name string, labels ...string) string { - if len(m.opts.MetricPrefix) > 0 { - name = m.opts.MetricPrefix + name - } - nl := len(m.opts.Labels) + len(labels) if nl == 0 { return name @@ -87,38 +82,9 @@ func (m *prometheusMeter) buildMetric(name string, labels ...string) string { nlabels = append(nlabels, m.opts.Labels...) nlabels = append(nlabels, labels...) - if len(m.opts.LabelPrefix) == 0 { - return meter.BuildName(name, nlabels...) - } - - for idx := 0; idx < nl; idx += 2 { - nlabels[idx] = m.opts.LabelPrefix + nlabels[idx] - } return meter.BuildName(name, nlabels...) } -func (m *prometheusMeter) buildName(name string) string { - if len(m.opts.MetricPrefix) > 0 { - name = m.opts.MetricPrefix + name - } - return name -} - -func (m *prometheusMeter) buildLabels(labels ...string) []string { - nl := len(labels) - if nl == 0 { - return nil - } - - nlabels := make([]string, 0, nl) - - for idx := 0; idx < nl; idx += 2 { - nlabels = append(nlabels, m.opts.LabelPrefix+labels[idx]) - nlabels = append(nlabels, labels[idx+1]) - } - return nlabels -} - func (m *prometheusMeter) Name() string { return m.opts.Name } @@ -126,8 +92,8 @@ func (m *prometheusMeter) Name() string { func (m *prometheusMeter) Counter(name string, labels ...string) meter.Counter { m.Lock() defer m.Unlock() - nm := m.buildName(name) - labels = m.buildLabels(append(m.opts.Labels, labels...)...) + nm := m.buildMetric(name) + labels = append(m.opts.Labels, labels...) cd, ok := m.counter[nm] h := newHash(labels) if !ok { @@ -149,8 +115,8 @@ func (m *prometheusMeter) Counter(name string, labels ...string) meter.Counter { func (m *prometheusMeter) FloatCounter(name string, labels ...string) meter.FloatCounter { m.Lock() defer m.Unlock() - nm := m.buildName(name) - labels = m.buildLabels(append(m.opts.Labels, labels...)...) + nm := m.buildMetric(name) + labels = append(m.opts.Labels, labels...) cd, ok := m.floatCounter[nm] h := newHash(labels) if !ok { @@ -172,8 +138,8 @@ func (m *prometheusMeter) FloatCounter(name string, labels ...string) meter.Floa func (m *prometheusMeter) Gauge(name string, fn func() float64, labels ...string) meter.Gauge { m.Lock() defer m.Unlock() - nm := m.buildName(name) - labels = m.buildLabels(append(m.opts.Labels, labels...)...) + nm := m.buildMetric(name) + labels = append(m.opts.Labels, labels...) cd, ok := m.gauge[nm] h := newHash(labels) if !ok { @@ -195,8 +161,8 @@ func (m *prometheusMeter) Gauge(name string, fn func() float64, labels ...string func (m *prometheusMeter) Histogram(name string, labels ...string) meter.Histogram { m.Lock() defer m.Unlock() - nm := m.buildName(name) - labels = m.buildLabels(append(m.opts.Labels, labels...)...) + nm := m.buildMetric(name) + labels = append(m.opts.Labels, labels...) cd, ok := m.histogram[nm] h := newHash(labels) if !ok { @@ -218,8 +184,8 @@ func (m *prometheusMeter) Histogram(name string, labels ...string) meter.Histogr func (m *prometheusMeter) Summary(name string, labels ...string) meter.Summary { m.Lock() defer m.Unlock() - nm := m.buildName(name) - labels = m.buildLabels(append(m.opts.Labels, labels...)...) + nm := m.buildMetric(name) + labels = append(m.opts.Labels, labels...) cd, ok := m.summary[nm] h := newHash(labels) if !ok { @@ -241,8 +207,8 @@ func (m *prometheusMeter) Summary(name string, labels ...string) meter.Summary { func (m *prometheusMeter) SummaryExt(name string, window time.Duration, quantiles []float64, labels ...string) meter.Summary { m.Lock() defer m.Unlock() - nm := m.buildName(name) - labels = m.buildLabels(append(m.opts.Labels, labels...)...) + nm := m.buildMetric(name) + labels = append(m.opts.Labels, labels...) cd, ok := m.summary[nm] h := newHash(labels) if !ok { @@ -269,23 +235,17 @@ func (m *prometheusMeter) SummaryExt(name string, window time.Duration, quantile return c } -func (m *prometheusMeter) Init(opts ...options.Option) error { - var err error +func (m *prometheusMeter) Init(opts ...meter.Option) error { for _, o := range opts { - if err = o(&m.opts); err != nil { - return err - } + o(&m.opts) } return nil } -func (m *prometheusMeter) Write(w io.Writer, opts ...options.Option) error { - var err error +func (m *prometheusMeter) Write(w io.Writer, opts ...meter.Option) error { options := m.opts for _, o := range opts { - if err = o(&options); err != nil { - return err - } + o(&options) } if options.WriteProcessMetrics || options.WriteFDMetrics { @@ -393,10 +353,10 @@ func (m *prometheusMeter) Write(w io.Writer, opts ...options.Option) error { return nil } -func (m *prometheusMeter) Clone(opts ...options.Option) meter.Meter { +func (m *prometheusMeter) Clone(opts ...meter.Option) meter.Meter { options := m.opts for _, o := range opts { - _ = o(&options) + o(&options) } return &prometheusMeter{ @@ -418,10 +378,10 @@ func (m *prometheusMeter) String() string { return "prometheus" } -func (m *prometheusMeter) Set(opts ...options.Option) meter.Meter { +func (m *prometheusMeter) Set(opts ...meter.Option) meter.Meter { nm := &prometheusMeter{opts: m.opts} for _, o := range opts { - _ = o(&nm.opts) + o(&nm.opts) } nm.set = prometheus.NewRegistry() return nm @@ -524,7 +484,6 @@ func (c prometheusSummary) UpdateDuration(n time.Time) { } func newHash(labels []string) uint64 { - labels = meter.BuildLabels(labels...) h := fnv.New64a() for _, l := range labels { h.Write([]byte(l)) diff --git a/prometheus_test.go b/prometheus_test.go index 838b252..e0b357a 100644 --- a/prometheus_test.go +++ b/prometheus_test.go @@ -2,13 +2,9 @@ package prometheus import ( "bytes" - "context" "testing" - "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 TestStd(t *testing.T) { @@ -25,8 +21,8 @@ func TestStd(t *testing.T) { func TestBuildName(t *testing.T) { m := NewMeter() - check := `micro_foo{micro_aaa="b",micro_bar="baz",micro_ccc="d"}` - name := m.buildMetric("foo", "bar", "baz", "aaa", "b", "ccc", "d") + check := `micro_foo{aaa="b",bar="baz",ccc="d"}` + name := m.buildMetric("micro_foo", "bar", "baz", "aaa", "b", "ccc", "d") if name != check { t.Fatalf("metric name error: %s != %s", name, check) } @@ -35,48 +31,20 @@ func TestBuildName(t *testing.T) { cnt.Inc() } -func TestWrapper(t *testing.T) { - t.Skip() - 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), - ) - _ = w - ctx := context.Background() - - c := client.NewClient() - if err := c.Init(); err != nil { - t.Fatal(err) - } - rsp := &codec.Frame{} - req := &codec.Frame{} - err := c.Call(ctx, c.NewRequest("svc2", "Service.Method", req), rsp) - _, _ = 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`)) { - t.Fatalf("invalid metrics output: %s", buf.Bytes()) - } -} - func TestMultiple(t *testing.T) { m := NewMeter() // meter.Labels("test_key", "test_val")) - m.Counter("server", "endpoint", "ep1", "path", "/path1").Inc() - m.Counter("server", "endpoint", "ep1", "path", "/path1").Inc() + m.Counter("micro_server", "endpoint", "ep1", "path", "/path1").Inc() + m.Counter("micro_server", "endpoint", "ep1", "path", "/path1").Inc() - m.Counter("server", "endpoint", "ep2", "path", "/path2").Inc() - m.Counter("server", "endpoint", "ep2", "path", "/path2").Inc() + m.Counter("micro_server", "endpoint", "ep2", "path", "/path2").Inc() + m.Counter("micro_server", "endpoint", "ep2", "path", "/path2").Inc() - m.Counter("server", "endpoint", "ep3", "path", "/path3", "status", "success").Inc() + m.Counter("micro_server", "endpoint", "ep3", "path", "/path3", "status", "success").Inc() buf := bytes.NewBuffer(nil) _ = m.Write(buf, meter.WriteProcessMetrics(false), meter.WriteFDMetrics(false)) - if !bytes.Contains(buf.Bytes(), []byte(`micro_server{micro_endpoint="ep1",micro_path="/path1"} 2`)) { + if !bytes.Contains(buf.Bytes(), []byte(`micro_server{endpoint="ep1",path="/path1"} 2`)) { // t.Fatal("XXXX") t.Fatalf("invalid metrics output: %s", buf.Bytes()) }