I have an application that consists of several microservices that I run in Docker. I'm currently learning observation and have already managed to connect logs with Loki, metrics with Prometheus and traces with Tempo. Logs and metrics works fine, but when I run the app, I get the following error from the services that are supposed to send their data:
Dropped 1 spans due to ResourceAccessException(I/O error on POST request for
"http://localhost:9411/api/v2/spans": Connect to http://localhost:9411
[localhost/127.0.0.1] failed: Connection refused)
As far as I understand, the problem is that the services cannot connect to the Tempo zipkin distributor service through http://localhost:9411 because it is located in container http://tempo:9411 (tempo - container name).
Here is the configuration:
tempo.yml
server:
http_listen_port: 3110
distributor:
receivers:
zipkin:
storage:
trace:
backend: local
local:
path: /tmp/tempo/blocks
compose.yml
// Other services...
tempo:
container_name: tempo
image: grafana/tempo:2.2.2
command: [ "-config.file=/etc/tempo.yaml" ]
volumes:
- ./docker/tempo/tempo.yml:/etc/tempo.yaml:ro
- ./docker/tempo/tempo-data:/tmp/tempo
ports:
- "3110:3100" # Tempo
- "9411:9411" # zipkin
networks:
- application-network
And my question is how can i change my distributor's base url from http://localhost:9411 to http://tempo:9411?
I looked for the answer on various sites and in the documentation but nothing worked.
compose.ymlfile ? It seems to be an excerpt. If so, could you please copy the whole content ?