version: "2" services: # Collector otel-collector: image: otel/opentelemetry-collector:0.88.0 restart: always command: ["--config=/etc/otel-collector-config.yaml", "${OTELCOL_ARGS}"] volumes: - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml ports: - "8888:8888" # Prometheus metrics exposed by the collector - "8889:8889" # Prometheus exporter metrics - "13133:13133" # health_check extension - "4317:4317" # OTLP gRPC receiver prometheus: image: prom/prometheus:latest container_name: prometheus restart: always volumes: - ./prometheus.yaml:/etc/prometheus/prometheus.yml ports: - "9090:9090" grafana: image: grafana/grafana container_name: grafana restart: unless-stopped ports: - '3000:3000' volumes: - ./grafana:/etc/grafana/provisioning/datasources - ./grafana-storage:/var/lib/grafana