# Observability VM (10.20.0.10): Mimir 9009, Loki 3100, Tempo 3200 (OTLP 4317/4318), Grafana 3000. # Object storage: the three GCS buckets, authenticated through the VM service account (no key files). services: mimir: image: grafana/mimir:3.2.1 container_name: mimir restart: always command: ["-config.file=/etc/mimir.yaml"] volumes: - ./mimir.yaml:/etc/mimir.yaml:ro - mimir-data:/data ports: - "9009:9009" loki: image: grafana/loki:3.7.8 container_name: loki restart: always command: ["-config.file=/etc/loki.yaml"] volumes: - ./loki.yaml:/etc/loki.yaml:ro - loki-data:/loki ports: - "3100:3100" tempo: image: grafana/tempo:3.0.3 container_name: tempo restart: always command: ["-config.file=/etc/tempo.yaml"] volumes: - ./tempo.yaml:/etc/tempo.yaml:ro - tempo-data:/var/tempo ports: - "3200:3200" - "4317:4317" - "4318:4318" grafana: image: grafana/grafana:13.2.2 container_name: grafana restart: always environment: GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: "${GF_SECURITY_ADMIN_PASSWORD}" GF_SERVER_ROOT_URL: http://10.20.0.10:3000 GF_ANALYTICS_REPORTING_ENABLED: "false" volumes: - ./grafana/provisioning:/etc/grafana/provisioning:ro - grafana-data:/var/lib/grafana ports: - "3000:3000" depends_on: [mimir, loki, tempo] volumes: mimir-data: {} loki-data: {} tempo-data: {} grafana-data: {}