services: api: environment: OTEL_SERVICE_NAME: socialize-api OTEL_EXPORTER_OTLP_ENDPOINT: http://alloy:4317 OTEL_EXPORTER_OTLP_PROTOCOL: grpc OTEL_RESOURCE_ATTRIBUTES: deployment.environment=preprod depends_on: alloy: condition: service_started grafana: image: grafana/grafana:13.0.1 restart: unless-stopped environment: GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER:-admin} GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASSWORD:-admin} GF_USERS_ALLOW_SIGN_UP: "false" volumes: - grafana-data:/var/lib/grafana - ./observability/grafana/provisioning:/etc/grafana/provisioning:ro - ./observability/grafana/dashboards:/var/lib/grafana/dashboards:ro ports: - "${GRAFANA_HTTP_BIND:-127.0.0.1}:3000:3000" depends_on: - prometheus - loki - tempo networks: - internal prometheus: image: prom/prometheus:v3.11.3 restart: unless-stopped command: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.path=/prometheus - --storage.tsdb.retention.time=${PROMETHEUS_RETENTION:-15d} - --web.enable-remote-write-receiver volumes: - prometheus-data:/prometheus - ./observability/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - ./observability/prometheus/rules:/etc/prometheus/rules:ro networks: - internal loki: image: grafana/loki:3.7.1 restart: unless-stopped command: -config.file=/etc/loki/local-config.yml volumes: - loki-data:/loki - ./observability/loki/local-config.yml:/etc/loki/local-config.yml:ro networks: - internal tempo: image: grafana/tempo:2.10.3 restart: unless-stopped command: -config.file=/etc/tempo.yml volumes: - tempo-data:/var/tempo - ./observability/tempo/tempo.yml:/etc/tempo.yml:ro networks: - internal alloy: image: grafana/alloy:v1.16.0 restart: unless-stopped command: - run - --server.http.listen-addr=0.0.0.0:12345 - --storage.path=/var/lib/alloy/data - /etc/alloy/config.alloy volumes: - alloy-data:/var/lib/alloy/data - /var/run/docker.sock:/var/run/docker.sock:ro - ./observability/alloy/config.alloy:/etc/alloy/config.alloy:ro expose: - "4317" - "4318" - "12345" networks: - internal volumes: grafana-data: prometheus-data: loki-data: tempo-data: alloy-data: networks: internal: