From 9b8757acda942da4911281ac6c3ff8207e6894b9 Mon Sep 17 00:00:00 2001 From: mountain Date: Wed, 29 Nov 2023 18:17:21 +0900 Subject: [PATCH] =?UTF-8?q?metric=20=ED=95=B4=EC=8B=9C=20=EA=B3=84?= =?UTF-8?q?=EC=82=B0=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- metric/common.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/metric/common.go b/metric/common.go index 5ca63e6..996b2d1 100644 --- a/metric/common.go +++ b/metric/common.go @@ -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]