networks: default: name: operations-dc services: tempo: image: grafana/tempo extra_hosts: ['host.docker.internal:host-gateway'] command: [ "-config.file=/etc/tempo.yaml" ] volumes: - ./docker/tempo/tempo-local.yaml:/etc/tempo.yaml:ro - ./tempo-data:/tmp/tempo ports: - "14268" # jaeger ingest - "9411:9411" # zipkin - "3200:3200" # loki: # image: grafana/loki # extra_hosts: ['host.docker.internal:host-gateway'] # command: [ "-config.file=/etc/loki/local-config.yaml" ] # ports: # - "3100:3100" # loki needs to be exposed so it receives logs # environment: # - JAEGER_AGENT_HOST=tempo # - JAEGER_ENDPOINT=http://tempo:14268/api/traces # send traces to Tempo # - JAEGER_SAMPLER_TYPE=const # - JAEGER_SAMPLER_PARAM=1 prometheus: image: prom/prometheus extra_hosts: ['host.docker.internal:host-gateway'] command: - --enable-feature=exemplar-storage - --config.file=/etc/prometheus/prometheus.yml volumes: - ./docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro ports: - "9090:9090" grafana: image: grafana/grafana extra_hosts: ['host.docker.internal:host-gateway'] volumes: - ./docker/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:ro - ./docker/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards:ro environment: - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin - GF_AUTH_DISABLE_LOGIN_FORM=true ports: - "3001:3000" # Prometheus: http://localhost:9090/ # Grafana: http://localhost:3000/