promtool: optimize labels slice allocation

Signed-off-by: Artur Melanchyk <arturmelanchyk@imail.name>
This commit is contained in:
Artur Melanchyk 2025-01-24 14:31:13 +01:00
parent 8846e42528
commit 30112f6ed7
No known key found for this signature in database

View file

@ -315,12 +315,11 @@ func readPrometheusLabels(r io.Reader, n int) ([]labels.Labels, error) {
i := 0 i := 0
for scanner.Scan() && i < n { for scanner.Scan() && i < n {
m := make([]labels.Label, 0, 10)
r := strings.NewReplacer("\"", "", "{", "", "}", "") r := strings.NewReplacer("\"", "", "{", "", "}", "")
s := r.Replace(scanner.Text()) s := r.Replace(scanner.Text())
labelChunks := strings.Split(s, ",") labelChunks := strings.Split(s, ",")
m := make([]labels.Label, 0, len(labelChunks))
for _, labelChunk := range labelChunks { for _, labelChunk := range labelChunks {
split := strings.Split(labelChunk, ":") split := strings.Split(labelChunk, ":")
m = append(m, labels.Label{Name: split[0], Value: split[1]}) m = append(m, labels.Label{Name: split[0], Value: split[1]})