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