Skip to content

Commit c79ed95

Browse files
Optionally suppress docker container labels (#2)
Also fixed some deprecated API usages
1 parent 5ff3627 commit c79ed95

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

main.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ import (
1818
"github.com/docker/docker/client"
1919
"github.com/go-kit/kit/log"
2020
"github.com/prometheus/client_golang/prometheus"
21+
"github.com/prometheus/client_golang/prometheus/collectors"
2122
"github.com/prometheus/client_golang/prometheus/promhttp"
2223
)
2324

2425
var (
25-
cachePeriod time.Duration
26-
)
26+
addContainerLabels bool
27+
cachePeriod time.Duration
28+
)
2729

2830
type dockerHealthCollector struct {
2931
mu sync.Mutex
@@ -89,9 +91,11 @@ func (c *dockerHealthCollector) collectMetrics(ch chan<- prometheus.Metric) {
8991

9092
rep := regexp.MustCompile("[^a-zA-Z0-9_]")
9193

92-
for k, v := range info.Config.Labels {
93-
label := strings.ToLower("container_label_" + k)
94-
labels[rep.ReplaceAllLiteralString(label, "_")] = v
94+
if addContainerLabels {
95+
for k, v := range info.Config.Labels {
96+
label := strings.ToLower("container_label_" + k)
97+
labels[rep.ReplaceAllLiteralString(label, "_")] = v
98+
}
9599
}
96100
labels["id"] = "/docker/" + info.ID
97101
labels["image"] = info.Config.Image
@@ -183,14 +187,15 @@ func init() {
183187
normalLogger = log.With(normalLogger, "severity", "info")
184188
errorLogger = log.With(errorLogger, "timestamp", log.DefaultTimestampUTC)
185189
errorLogger = log.With(errorLogger, "severity", "error")
186-
prometheus.MustRegister(prometheus.NewBuildInfoCollector())
187-
cachePeriod = time.Duration(*flag.Int("cache-period", 1, "The period of time the collector will reuse the results of docker inspect before polling again, in seconds" )) * time.Second
190+
prometheus.MustRegister(collectors.NewBuildInfoCollector())
191+
cachePeriod = time.Duration(*flag.Int("cache-period", 1, "The period of time the collector will reuse the results of docker inspect before polling again, in seconds")) * time.Second
192+
flag.BoolVar(&addContainerLabels, "add-container-labels", true, "Add labels from docker containers as metric labels")
188193
}
189194

190195
func main() {
191196
flag.Parse()
192197

193-
client, err := client.NewEnvClient()
198+
client, err := client.NewClientWithOpts()
194199
errCheck(err)
195200
defer client.Close()
196201

@@ -235,4 +240,4 @@ func main() {
235240
errorLogger.Log("message", fmt.Sprintf("Failed to gracefully shutdown: %v", err))
236241
}
237242
normalLogger.Log("message", "Server shutdown")
238-
}
243+
}

0 commit comments

Comments
 (0)