# SentryAgent.ai AgentIdP — Monitoring Overlay # Compose Specification (no version header — deprecated per modern Compose Spec) # Usage: docker compose -f compose.yaml -f compose.monitoring.yaml up services: prometheus: image: prom/prometheus:v2.53.0 volumes: - ./monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - 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' - '--web.enable-lifecycle' ports: - '9090:9090' networks: - app-tier restart: unless-stopped deploy: resources: limits: memory: 256m cpus: '0.5' healthcheck: test: ['CMD', 'wget', '--no-verbose', '--tries=1', '--spider', 'http://localhost:9090/-/healthy'] interval: 30s timeout: 10s retries: 3 start_period: 30s grafana: image: grafana/grafana:11.2.0 volumes: - grafana-data:/var/lib/grafana - ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro - ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards:ro environment: GF_SECURITY_ADMIN_PASSWORD: ${GF_ADMIN_PASSWORD} GF_USERS_ALLOW_SIGN_UP: 'false' GF_AUTH_ANONYMOUS_ENABLED: 'false' ports: - '3001:3000' networks: - app-tier depends_on: - prometheus restart: unless-stopped deploy: resources: limits: memory: 256m cpus: '0.5' healthcheck: test: ['CMD', 'wget', '--no-verbose', '--tries=1', '--spider', 'http://localhost:3000/api/health'] interval: 30s timeout: 10s retries: 3 start_period: 30s volumes: prometheus-data: grafana-data: networks: app-tier: external: true