version: "3" services: grafana: image: grafana/grafana:9.0.6 entrypoint: - /usr/share/grafana/bin/grafana-server - --homepath=/usr/share/grafana - --config=/etc/grafana-config/grafana.ini volumes: - ./grafana/config:/etc/grafana-config - ./grafana/datasources:/etc/grafana/provisioning/datasources ports: - "3000:3000" tempo: image: grafana/tempo:1.4.1 volumes: - ./etc/tempo.yaml:/etc/tempo.yaml command: - "-storage.trace.backend=local" # tell tempo where to permanently put traces - "-storage.trace.local.path=/tmp/tempo/traces" - "-storage.trace.wal.path=/tmp/tempo/wal" # tell tempo where to store the wal - "-auth.enabled=false" # disables the requirement for the X-Scope-OrgID header - "-server.http-listen-port=3200" - "-config.file=/etc/tempo.yaml" ports: - "3200:3200" nodejs: build: . command: node --require './tracing.js' index.js ports: - "8080:8080" environment: - OTEL_SERVICE_NAME=nodejs-opentelemetry-tempo agent: image: grafana/agent:latest volumes: - ./etc/agent.yaml:/etc/agent.yaml entrypoint: - /bin/agent - -config.file=/etc/agent.yaml - -config.expand-env - -config.enable-read-api environment: TEMPO_HOST: tempo:4317 ports: - "12345:12345" depends_on: - tempo