30 lines
1.1 KiB
YAML
30 lines
1.1 KiB
YAML
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: unix:///var/run/docker.sock
|
|
role: nodes
|
|
relabel_configs:
|
|
# Fetch metrics on port 9323.
|
|
- source_labels: [__meta_dockerswarm_node_address]
|
|
target_label: __address__
|
|
replacement: $1:9323
|
|
# Set hostname as instance label
|
|
- source_labels: [__meta_dockerswarm_node_hostname]
|
|
target_label: instance
|
|
# 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 prometheus-job Swarm label as Prometheus job label.
|
|
- source_labels: [__meta_dockerswarm_service_label_prometheus_job]
|
|
target_label: job |