Ensure all Prometheus metrics have the same labelnames.

Fixes #1704
This commit is contained in:
Brian Brazil 2017-11-30 16:33:37 +00:00
parent 7d11f4243f
commit 27f103b266

View File

@ -820,11 +820,19 @@ func (c *PrometheusCollector) collectContainersInfo(ch chan<- prometheus.Metric)
glog.Warningf("Couldn't get containers: %s", err)
return
}
rawLabels := map[string]struct{}{}
for _, container := range containers {
labels, values := []string{}, []string{}
for l, v := range c.containerLabelsFunc(container) {
for l := range c.containerLabelsFunc(container) {
rawLabels[l] = struct{}{}
}
}
for _, container := range containers {
values := make([]string, 0, len(rawLabels))
labels := make([]string, 0, len(rawLabels))
containerLabels := c.containerLabelsFunc(container)
for l := range rawLabels {
labels = append(labels, sanitizeLabelName(l))
values = append(values, v)
values = append(values, containerLabels[l])
}
// Container spec