- job_name: "dockerswarm"
dockerswarm_sd_configs:
- host: tcp://docker: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` service label.
- source_labels: [__meta_dockerswarm_service_label_prometheus_job]
regex: .+
action: keep
# Use the `prometheus.job` swarm label as prometheus job label.
- source_labels: [__meta_dockerswarm_service_label_prometheus_job]
target_label: job
# Set the address for the job if the service has a `prometheus.address` label.
- source_labels: [__meta_dockerswarm_service_label_prometheus_address]
target_label: __address__
regex: (.+)
# Set the metrics path the `prometheus.path` label if it exists.
- source_labels: [__meta_dockerswarm_service_label_prometheus_path]
target_label: __metrics_path__
regex: (.+)
# Set the target port from the `prometheus.port` label if it exists.
- source_labels:
[__address__, __meta_dockerswarm_service_label_prometheus_port]
target_label: __address__
regex: '(.*):(\d+);(\d+)'