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" "math"
"os" "os"
"path" "path"
"sort"
"strings" "strings"
"sync/atomic" "sync/atomic"
@ -67,11 +68,26 @@ func NewMetric(mt MetricType, name string, help string, constLabels map[string]s
return MetricWriterNil return MetricWriterNil
} }
hash := md5.New() var disorder []struct {
hash.Write([]byte(name)) k string
v string
}
for k, v := range constLabels { for k, v := range constLabels {
hash.Write([]byte(k)) disorder = append(disorder, struct {
hash.Write([]byte(v)) 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] key := hex.EncodeToString(hash.Sum(nil))[:metric_key_size]