# File: /home/meninjar/goprint/service/docker-compose.monitoring.yml version: "3.8" services: prometheus: image: prom/prometheus:latest container_name: service-prometheus ports: - "9090:9090" volumes: - ./monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.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=200h" - "--web.enable-lifecycle" networks: - general-app-network - shared-simrs-network restart: unless-stopped grafana: image: grafana/grafana:latest container_name: service-grafana ports: - "3000:3000" volumes: - grafana_data:/var/lib/grafana - ./monitoring/grafana/provisioning:/etc/grafana/provisioning - ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin123 - GF_USERS_ALLOW_SIGN_UP=false - GF_INSTALL_PLUGINS=grafana-piechart-panel networks: - general-app-network - shared-simrs-network restart: unless-stopped depends_on: - prometheus redis-exporter: image: oliver006/redis_exporter:latest container_name: goprint-redis-exporter ports: - "9121:9121" environment: - REDIS_ADDR=redis:6379 networks: - goprint-network restart: unless-stopped depends_on: - redis postgres-exporter: image: prometheuscommunity/postgres-exporter:latest container_name: goprint-postgres-exporter ports: - "9187:9187" environment: - DATA_SOURCE_NAME=postgresql://postgres:password@postgres:5432/goprint?sslmode=disable networks: - goprint-network restart: unless-stopped depends_on: - postgres volumes: prometheus_data: grafana_data: networks: general-app-network: external: true name: service-general_default # Shared network for cross-container communication shared-simrs-network: external: true name: shared-simrs-network