mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-17 15:36:48 +00:00
* fix(prom-dup-labels): added fingerprint in prom labels * fix(prom-dup-labels): removed fingerprint labels from result series * fix(prom-dup-labels): removed fingerprint labels from result series * fix(prom-dup-labels): removed fingerprint labels from result series * fix(prom-dup-labels): removed fingerprint labels from result series * fix(prom-dup-labels): added test cases * Update pkg/prometheus/clickhouseprometheus/client_query_test.go Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * fix(prom-dup-labels): added test cases --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
35 lines
793 B
Go
35 lines
793 B
Go
package clickhouseprometheus
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strconv"
|
|
|
|
"github.com/SigNoz/signoz/pkg/prometheus"
|
|
"github.com/prometheus/prometheus/prompb"
|
|
)
|
|
|
|
// Unmarshals JSON into Prometheus labels. It does not preserve order.
|
|
func unmarshalLabels(s string, fingerprint uint64) ([]prompb.Label, string, error) {
|
|
var metricName string
|
|
m := make(map[string]string)
|
|
if err := json.Unmarshal([]byte(s), &m); err != nil {
|
|
return nil, metricName, err
|
|
}
|
|
res := make([]prompb.Label, 0, len(m))
|
|
for n, v := range m {
|
|
if n == "__name__" {
|
|
metricName = v
|
|
}
|
|
|
|
res = append(res, prompb.Label{
|
|
Name: n,
|
|
Value: v,
|
|
})
|
|
}
|
|
res = append(res, prompb.Label{
|
|
Name: prometheus.FingerprintAsPromLabelName,
|
|
Value: strconv.FormatUint(fingerprint, 10),
|
|
})
|
|
return res, metricName, nil
|
|
}
|