Skip to content

Commit

Permalink
Prefix Docker labels & env vars in Prometheus metrics to prevent conf…
Browse files Browse the repository at this point in the history
…licts
  • Loading branch information
jimmidyson committed Aug 1, 2016
1 parent bbe54c0 commit f1d8b2d
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 62 deletions.
9 changes: 7 additions & 2 deletions metrics/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,11 @@ func (c *PrometheusCollector) Collect(ch chan<- prometheus.Metric) {
c.errors.Collect(ch)
}

const (
containerLabelPrefix = "container_label_"
containerEnvPrefix = "container_env_"
)

func (c *PrometheusCollector) collectContainersInfo(ch chan<- prometheus.Metric) {
containers, err := c.infoProvider.SubcontainersInfo("/", &info.ContainerInfoRequest{NumStats: 1})
if err != nil {
Expand Down Expand Up @@ -530,11 +535,11 @@ func (c *PrometheusCollector) collectContainersInfo(ch chan<- prometheus.Metric)
}

for k, v := range container.Spec.Labels {
baseLabels = append(baseLabels, sanitizeLabelName(k))
baseLabels = append(baseLabels, sanitizeLabelName(containerLabelPrefix+k))
baseLabelValues = append(baseLabelValues, v)
}
for k, v := range container.Spec.Envs {
baseLabels = append(baseLabels, sanitizeLabelName(k))
baseLabels = append(baseLabels, sanitizeLabelName(containerEnvPrefix+k))
baseLabelValues = append(baseLabelValues, v)
}

Expand Down
Loading

0 comments on commit f1d8b2d

Please sign in to comment.