global: scrape_interval: 15s evaluation_interval: 15s rule_files: - "traefik_rules.yml" - "system_rules.yml" alerting: alertmanagers: - static_configs: - targets: - alertmanager:9093 scrape_configs: # Traefik metrics - job_name: 'traefik' static_configs: - targets: ['traefik:8080'] metrics_path: /metrics scrape_interval: 10s # Docker Swarm services - job_name: 'docker-swarm' dockerswarm_sd_configs: - host: unix:///var/run/docker.sock role: services port: 9090 relabel_configs: - source_labels: [__meta_dockerswarm_service_label_prometheus_job] target_label: __tmp_prometheus_job_name - source_labels: [__tmp_prometheus_job_name] regex: .+ target_label: job replacement: '${1}' - regex: __tmp_prometheus_job_name action: labeldrop # Node exporter for system metrics - job_name: 'node-exporter' static_configs: - targets: ['node-exporter:9100'] scrape_interval: 30s # cAdvisor for container metrics - job_name: 'cadvisor' static_configs: - targets: ['cadvisor:8080'] scrape_interval: 30s # Prometheus itself - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']