services: otel-collector: image: otel/opentelemetry-collector-contrib:0.98.0 restart: always command: - "--config=/etc/otel-collector-config.yaml" volumes: - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml ports: - "8888:8888" # Prometheus metrics exposed by the collector - "8889:8889" # Prometheus exporter metrics - "4317:4317" # OTLP gRPC receiver - "4318:4318" # OTLP gRPC receiver depends_on: - jaeger - prometheus - tempo - loki jaeger: image: jaegertracing/all-in-one:latest restart: always ports: - "16686:16686" # UI - "14268" # ?? - "14250" # ?? tempo: image: grafana/tempo:2.4.1 command: - '-config.file=/etc/tempo/config.yaml' volumes: - ./tempo.yaml:/etc/tempo/config.yaml ports: - 4318 - 7999:7999 prometheus: image: prom/prometheus:latest restart: always command: - '--config.file=/etc/prometheus/prometheus.yaml' - '--web.enable-remote-write-receiver' volumes: - ./prometheus.yaml:/etc/prometheus/prometheus.yaml ports: - "9090:9090" grafana: image: grafana/grafana:10.4.2 ports: - 5050:3000 volumes: - ./grafana.yaml:/etc/grafana/provisioning/datasources/datasources.yaml environment: - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin - GF_AUTH_DISABLE_LOGIN_FORM=true depends_on: - prometheus - tempo loki: image: grafana/loki:2.9.8 command: - '-config.file=/etc/loki/config.yaml' volumes: - ./loki.yaml:/etc/loki/config.yaml ports: - 3100:3100