metric 해시 계산 로직 수정

This commit is contained in:
2023-11-29 18:17:21 +09:00
parent 4089ac0bc1
commit 9b8757acda

View File

@ -9,6 +9,7 @@ import (
"math"
"os"
"path"
"sort"
"strings"
"sync/atomic"
@ -67,11 +68,26 @@ func NewMetric(mt MetricType, name string, help string, constLabels map[string]s
return MetricWriterNil
}
hash := md5.New()
hash.Write([]byte(name))
var disorder []struct {
k string
v string
}
for k, v := range constLabels {
hash.Write([]byte(k))
hash.Write([]byte(v))
disorder = append(disorder, struct {
k string
v string
}{k: strings.ToLower(k), v: strings.ToLower(v)})
}
sort.Slice(disorder, func(i, j int) bool {
return disorder[i].k < disorder[j].k
})
hash := md5.New()
hash.Write([]byte(strings.ToLower(name)))
for _, d := range disorder {
hash.Write([]byte(d.k))
hash.Write([]byte(d.v))
}
key := hex.EncodeToString(hash.Sum(nil))[:metric_key_size]