metric 해시 계산 로직 수정
This commit is contained in:
@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user