Local kubernetes setup of open telemetry & tempo

My aim is to display traces on grafana dashboard. So these are the steps I’m following.

  1. An application instrumented for tracing is running on my kubernetes setup
  2. Application sends data directly to an OpenTelemetry Collector (agent)
  3. The agent then forwards the data to Collector(s) that receive data from multiple
  4. The Collector then sends the data to the appropriate backend, which is tempo in this
    I’m stuck at 4th step. Collector is unable to push traces to tempo.

The configuration for exporter in collector is -
endpoint: tempo.default.svc.cluster.local:55680
insecure: true

The logs of collector pod show this -
2021-05-11T10:40:29.776Z info exporterhelper/queued_retry.go:314 Exporting failed. Will retry the request after interval. {“kind”: “exporter”, “name”: “otlp”, “error”: “failed to push trace data via OTLP exporter: rpc error: code = Unavailable desc = connection error: desc = “transport: Error while dialing dial tcp connect: connection refused””, “interval”: “5.52330144s”}
Attaching the output screenshot - tempo service cluster IP

I’m deploying tempo through helm chart - helm install tempo grafana/tempo
And I can see that 55680 port is open. Attaching screenshot of services too.

I’m a beginner. I’m not sure where it is going wrong.

Connection refused suggests that the port is not open or not accessible to the sender. Can you share your Tempo config?

This will require some basic network debugging like:

  • Exec into the Tempo pod and attempt to open the local port 55680
  • Exec into the collector pod and attempt to open port tempo.default.svc.cluster.local:55680

Hi @joeelliott ,

Thank you for the response.
I’m installing tempo through - helm install tempo grafana/tempo
I didn’t pass any configurations using values.html. Can that be a problem?

I did exec into my tempo pod. It is showing connection refused.

/ # busybox-extras telnet localhost 55680
telnet: can’t connect to remote host ( Connection refused

By default it appears that all trace ingestion is disabled:

Perhaps try something like:

helm upgrade --set traces.otlp.grpc=true --install tempo grafana/tempo-distributed

I tried - helm upgrade --set traces.otlp.grpc=true --install tempo grafana/tempo-distributed

When I give trace id on grafana UI, it returns nothing. I was checking logs for tempo pods.Attached are the logs for tempo-distributed-querier pod

Definitely concerned about the errors connecting to from querier → query-frontend. Tempo would be unable to answer any queries if this connection didn’t work.

We recently added the ability to just dump every trace that gets into Tempo. Perhaps this could help:

This is the address the field that has to be set correctly for the querier to connect to the frontend. You could double check this as well as exec into your querier pod and see if you can connect to the frontend.

        frontend_address: ???