From be96951c56e0afb6ed0ac9b4a6197074134ebbe5 Mon Sep 17 00:00:00 2001 From: Julien Pivotto Date: Thu, 9 Jul 2020 20:05:21 +0200 Subject: [PATCH] Add Docker Swarm configuration example (#7542) Signed-off-by: Julien Pivotto --- docs/configuration/configuration.md | 3 ++ .../examples/prometheus-dockerswarm.yml | 39 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 documentation/examples/prometheus-dockerswarm.yml diff --git a/docs/configuration/configuration.md b/docs/configuration/configuration.md index e2a7ba522..da2061e4a 100644 --- a/docs/configuration/configuration.md +++ b/docs/configuration/configuration.md @@ -576,6 +576,9 @@ basic_auth: [ bearer_token_file: ] ``` +See [this example Prometheus configuration file](/documentation/examples/prometheus-dockerswarm.yml) +for a detailed example of configuring Prometheus for Docker Swarm. + ### `` A DNS-based service discovery configuration allows specifying a set of DNS diff --git a/documentation/examples/prometheus-dockerswarm.yml b/documentation/examples/prometheus-dockerswarm.yml new file mode 100644 index 000000000..70f68863a --- /dev/null +++ b/documentation/examples/prometheus-dockerswarm.yml @@ -0,0 +1,39 @@ +# A example scrape configuration for running Prometheus with +# Docker Swarm. +# +# This example works with cadvisor deployed with: +# docker service create --name cadvisor -l prometheus-job=cadvisor +# --mode=global --publish published=8080,target=8080,mode=host +# --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock,ro +# --mount type=bind,src=/,dst=/rootfs,ro +# --mount type=bind,src=/var/run,dst=/var/run +# --mount type=bind,src=/sys,dst=/sys,ro +# --mount type=bind,src=/var/lib/docker,dst=/var/lib/docker,ro +# google/cadvisor -docker_only + +scrape_configs: + + # Make Prometheus scrape itself for metrics. + - job_name: 'prometheus' + static_configs: + - targets: ['localhost:9090'] + + # Create a job for Docker Swarm containers. + - job_name: 'dockerswarm' + dockerswarm_sd_configs: + - host: http://127.0.0.1:2375 + role: tasks + relabel_configs: + # Only keep containers that should be running. + - source_labels: [__meta_dockerswarm_task_desired_state] + regex: running + action: keep + # Only keep containers that have a `prometheus-job` label. + - source_labels: [__meta_dockerswarm_service_label_prometheus_job] + regex: .+ + action: keep + # Use the task labels that are prefixed by `prometheus-`. + - regex: __meta_dockerswarm_service_label_prometheus_(.+) + action: labelmap + replacement: $1 +