services: alloy: image: grafana/alloy:latest container_name: alloy command: - run - /etc/alloy/config.alloy - --server.http.listen-addr=0.0.0.0:12345 - --storage.path=/var/lib/alloy/data volumes: - ./alloy-config.alloy:/etc/alloy/config.alloy:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro ports: - "4317:4317" # OTLP gRPC - "4318:4318" # OTLP HTTP - "12345:12345" # Alloy UI and metrics networks: - observ-net restart: unless-stopped privileged: true labels: logging: "alloy" prometheus: image: prom/prometheus:latest container_name: prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - ./rules:/etc/prometheus/rules ports: - "9090:9090" # Interfaccia Web di Prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--web.enable-remote-write-receiver' - '--enable-feature=exemplar-storage' depends_on: - alloy networks: - observ-net labels: logging: "alloy" grafana: image: grafana/grafana:latest container_name: grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=admin - GF_SECURITY_ADMIN_USER=admin volumes: - grafana-storage:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning depends_on: - prometheus networks: - observ-net labels: logging: "alloy" loki: image: grafana/loki:latest container_name: loki user: "0" ports: - "3100:3100" volumes: - ./loki-config.yml:/etc/loki/local-config.yaml - ./loki-data:/loki command: -config.file=/etc/loki/local-config.yaml restart: unless-stopped networks: - observ-net labels: logging: "alloy" tempo: image: grafana/tempo:latest container_name: tempo user: "0" command: ["-config.file=/etc/tempo.yml"] volumes: - ./tempo-config.yml:/etc/tempo.yml - tempo-data:/tmp/tempo ports: - "3200:3200" # Tempo HTTP restart: unless-stopped networks: - observ-net labels: logging: "alloy" pyroscope: image: grafana/pyroscope:latest container_name: pyroscope ports: - "4040:4040" # Pyroscope UI and API volumes: - pyroscope-data:/var/lib/pyroscope restart: unless-stopped networks: - observ-net labels: logging: "alloy" environment: - PYROSCOPE_LOG_LEVEL=info volumes: grafana-storage: tempo-data: pyroscope-data: networks: observ-net: driver: bridge