From 779cd96de5df66766934b09e2332b5a299f1f118 Mon Sep 17 00:00:00 2001 From: Etienne Perot Date: Mon, 24 Apr 2023 12:02:02 -0700 Subject: [PATCH] `runsc metric-server`: Fix printing labels with only external labels specified Prior to this CL, attempting to write data for a data point with no labels other than `d.ExternalLabels` set would not actually print these labels. This CL adds `d.ExternalLabels` to the check that checks whether there are any labels to write, and simplifies it to not check for nil-ness (as the `len` of a `nil` map is 0). PiperOrigin-RevId: 526715338 --- pkg/prometheus/prometheus.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/prometheus/prometheus.go b/pkg/prometheus/prometheus.go index 3d503219f..feeee5ecb 100644 --- a/pkg/prometheus/prometheus.go +++ b/pkg/prometheus/prometheus.go @@ -660,7 +660,7 @@ func OrderedLabels(labels ...map[string]string) <-chan LabelOrError { // writeLabelsTo writes a set of metric labels. func (d *Data) writeLabelsTo(w io.Writer, extraLabels map[string]string, leLabel *Number) error { - if (d.Labels != nil && len(d.Labels) != 0) || (extraLabels != nil && len(extraLabels) != 0) || leLabel != nil { + if len(d.Labels)+len(d.ExternalLabels)+len(extraLabels) != 0 || leLabel != nil { if _, err := io.WriteString(w, "{"); err != nil { return err }