meter: fast path for only one label
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
650d167313
commit
a7e6d61b95
@ -105,18 +105,20 @@ func BuildName(name string, labels ...string) string {
|
|||||||
labels = labels[:len(labels)-1]
|
labels = labels[:len(labels)-1]
|
||||||
}
|
}
|
||||||
|
|
||||||
sort.Sort(byKey(labels))
|
if len(labels) > 2 {
|
||||||
|
sort.Sort(byKey(labels))
|
||||||
|
|
||||||
idx := 0
|
idx := 0
|
||||||
for {
|
for {
|
||||||
if labels[idx] == labels[idx+2] {
|
if labels[idx] == labels[idx+2] {
|
||||||
copy(labels[idx:], labels[idx+2:])
|
copy(labels[idx:], labels[idx+2:])
|
||||||
labels = labels[:len(labels)-2]
|
labels = labels[:len(labels)-2]
|
||||||
} else {
|
} else {
|
||||||
idx += 2
|
idx += 2
|
||||||
}
|
}
|
||||||
if idx+2 >= len(labels) {
|
if idx+2 >= len(labels) {
|
||||||
break
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,6 +56,10 @@ func TestBuildName(t *testing.T) {
|
|||||||
"my_metric",
|
"my_metric",
|
||||||
"broker", "broker1", "broker", "broker2", "server", "http", "server", "tcp", "register", "mdns",
|
"broker", "broker1", "broker", "broker2", "server", "http", "server", "tcp", "register", "mdns",
|
||||||
},
|
},
|
||||||
|
`my_metric{aaa="aaa"}`: []string{
|
||||||
|
"my_metric",
|
||||||
|
"aaa", "aaa",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for e, d := range data {
|
for e, d := range data {
|
||||||
|
Loading…
Reference in New Issue
Block a user