# Observability main stack. Prometheus and Grafana. # Depends on docker-compose.exporters.yml for the network name: "cogstack-observability" services: alloy: image: cogstacksystems/cogstack-observability-alloy:latest ports: - "12345:12345" networks: - observability volumes: - ${BASE_DIR-.}/alloy/probers:/etc/alloy/probers # CAdvisor - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro environment: - PROMETHEUS_URL=http://cogstack-observability-prometheus-1:9090/prometheus - ALLOY_HOSTNAME=${ALLOY_HOSTNAME-localhost} # Used to add a label to metrics - ALLOY_IP_ADDRESS=${ALLOY_IP_ADDRESS-localhost} # Used to add a label to metrics prometheus: image: cogstacksystems/cogstack-observability-prometheus:latest restart: unless-stopped volumes: - ./prometheus:/etc/prometheus/cogstack/site/ - prometheus-data:/prometheus networks: - observability grafana: image: cogstacksystems/cogstack-observability-grafana:latest restart: unless-stopped volumes: - grafana-data:/var/lib/grafana networks: - observability environment: - GF_AUTH_ANONYMOUS_ENABLED=true # Allows use of grafana without sign in - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer traefik: image: cogstacksystems/cogstack-observability-traefik:latest networks: - observability restart: unless-stopped ports: - "80:80" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # So that Traefik can listen to the Docker events networks: observability: driver: bridge volumes: prometheus-data: grafana-data: