version: '3.8' services: prometheus: image: m.daocloud.io/docker.io/prom/prometheus:v2.52.0 container_name: prometheus ports: - "9090:9090" volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml - ./config/agent_alerts.yml:/etc/prometheus/agent_alerts.yml - ./data/prometheus:/prometheus extra_hosts: - "host.docker.internal:host-gateway" command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.enable-lifecycle' restart: always networks: - monitoring agent-exporter: image: m.daocloud.io/docker.io/python:3.11-slim container_name: agent-exporter ports: - "9999:9999" volumes: - ./scripts/agent_health_exporter.py:/app/exporter.py:ro command: python3 /app/exporter.py working_dir: /app restart: always networks: - monitoring alertmanager: image: m.daocloud.io/docker.io/prom/alertmanager:v0.27.0 container_name: alertmanager ports: - "9093:9093" volumes: - ./config/alertmanager.yml:/etc/alertmanager/alertmanager.yml - ./data/alertmanager:/alertmanager extra_hosts: - "host.docker.internal:host-gateway" command: - '--config.file=/etc/alertmanager/alertmanager.yml' - '--storage.path=/alertmanager' - '--web.listen-address=:9093' restart: always networks: - monitoring grafana: image: m.daocloud.io/docker.io/grafana/grafana:11.0.0 container_name: grafana ports: - "3001:3000" environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=*** - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-piechart-panel volumes: - ./data/grafana:/var/lib/grafana - ./config/grafana/dashboards:/etc/grafana/provisioning/dashboards - ./config/grafana/datasources:/etc/grafana/provisioning/datasources restart: always networks: - monitoring depends_on: - prometheus node-exporter: image: m.daocloud.io/docker.io/prom/node-exporter:v1.8.2 container_name: node-exporter ports: - "9100:9100" volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($|/)' restart: always networks: - monitoring networks: monitoring: driver: bridge