MCPcopy Create free account
hub / github.com/cortexproject/cortex / desymbolizeLabels

Function desymbolizeLabels

pkg/cortexpb/compatv2.go:20–35  ·  view source on GitHub ↗

desymbolizeLabels decodes label references, with given symbols to labels. Copied from the Prometheus: https://github.com/prometheus/prometheus/blob/v3.7.2/prompb/io/prometheus/write/v2/symbols.go#L83

(b *labels.ScratchBuilder, labelRefs []uint32, symbols []string)

Source from the content-addressed store, hash-verified

18// desymbolizeLabels decodes label references, with given symbols to labels.
19// Copied from the Prometheus: https://github.com/prometheus/prometheus/blob/v3.7.2/prompb/io/prometheus/write/v2/symbols.go#L83
20func desymbolizeLabels(b *labels.ScratchBuilder, labelRefs []uint32, symbols []string) (labels.Labels, error) {
21 if len(labelRefs)%2 != 0 {
22 return labels.EmptyLabels(), fmt.Errorf("invalid labelRefs length %d", len(labelRefs))
23 }
24
25 b.Reset()
26 for i := 0; i < len(labelRefs); i += 2 {
27 nameRef, valueRef := labelRefs[i], labelRefs[i+1]
28 if int(nameRef) >= len(symbols) || int(valueRef) >= len(symbols) {
29 return labels.EmptyLabels(), fmt.Errorf("labelRefs %d (name) = %d (value) outside of symbols table (size %d)", nameRef, valueRef, len(symbols))
30 }
31 b.Add(symbols[nameRef], symbols[valueRef])
32 }
33 b.Sort()
34 return b.Labels(), nil
35}
36
37func MetadataV2MetricTypeToMetricType(mt MetadataV2_MetricType) model.MetricType {
38 switch mt {

Callers 2

ToLabelsMethod · 0.85
ToLabelsMethod · 0.85

Calls 3

ResetMethod · 0.45
AddMethod · 0.45
LabelsMethod · 0.45

Tested by

no test coverage detected