move v4 changes
Some checks failed
coverage / build (pull_request) Has been cancelled
lint / lint (pull_request) Has been cancelled
test / test (pull_request) Has been cancelled

This commit is contained in:
Evstigneev Denis
2025-10-28 17:00:45 +03:00
parent 18e1442299
commit 6d6d3e0855
5 changed files with 199 additions and 75 deletions

View File

@@ -2,14 +2,32 @@ package victoriametrics
import (
"bytes"
"context"
"testing"
"go.unistack.org/micro/v3/client"
"go.unistack.org/micro/v3/codec"
"go.unistack.org/micro/v3/meter"
)
func BenchmarkBuildName(b *testing.B) {
m := NewMeter(meter.Labels("pod", "xxx"))
if err := m.Init(); err != nil {
b.Fatal(err)
}
im := m.(*victoriametricsMeter)
b.ResetTimer()
for i := 0; i < b.N; i++ {
name := im.buildName("micro_foo", "bar", "baz", "aaa", "b", "ccc", "d")
_ = name
}
}
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("micro_foo", "micro_bar", "baz", "micro_aaa", "b", "micro_ccc", "d")
check := `micro_foo{bar="baz",aaa="b",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)
}
@@ -18,12 +36,24 @@ func TestBuildName(t *testing.T) {
cnt.Inc()
}
func TestPrometheusCompat(t *testing.T) {
m := NewMeter(PrometheusCompat(true))
m.Histogram("foo", "key", "val").Update(15)
func TestWrapper(t *testing.T) {
m := NewMeter()
if err := m.Init(); err != nil {
t.Fatal(err)
}
ctx := context.Background()
c := client.NewClient(client.Meter(m))
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)
t.Logf("\n%s", buf.Bytes())
_ = m.Write(buf, meter.WriteProcessMetrics(false), meter.WriteFDMetrics(false))
if !bytes.Contains(buf.Bytes(), []byte(`micro_client_request_total{endpoint="Service.Method",status="failure",code="500"} 1`)) {
t.Fatalf("invalid metrics output: %s", buf.Bytes())
}
}