services: otel-collector: image: otel/opentelemetry-collector-contrib:latest container_name: otel-collector command: ["--config=/etc/otel-collector-config.yml"] volumes: - ./otel-collector-config.yml:/etc/otel-collector-config.yml ports: - "4317:4317" # gRPC - "4318:4318" # HTTP - "8889:8889" # Prometheus metrics endpoint networks: - observ-net 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' depends_on: - otel-collector networks: - observ-net grafana: image: grafana/grafana:latest 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 volumes: grafana-storage: networks: observ-net: driver: bridge