version: '3.8' services: prometheus: image: prom/prometheus:v2.45.0 container_name: prometheus ports: - "9090:9090" volumes: - ./.trae/monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml - ./.trae/monitoring/prometheus/alerting_rules.yml:/etc/prometheus/alerting_rules.yml - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--storage.tsdb.retention.time=15d' networks: - monitoring restart: unless-stopped grafana: image: grafana/grafana:10.1.0 container_name: grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin - GF_INSTALL_PLUGINS= - GF_SERVER_ROOT_URL=http://localhost:3000 - GF_USERS_ALLOW_SIGN_UP=false - GF_PROVISIONING_ENABLED=true - GF_PROVISIONING_PATHS=/etc/grafana/provisioning volumes: - grafana_data:/var/lib/grafana - ./.trae/monitoring/grafana/provisioning:/etc/grafana/provisioning - ./.trae/monitoring/grafana/dashboards:/var/lib/grafana/dashboards networks: - monitoring depends_on: - prometheus restart: unless-stopped volumes: prometheus_data: driver: local grafana_data: driver: local networks: monitoring: driver: bridge