Send traces to tempo cloud from open telemetry in python

Im trying to send data to tempo cloud using the OTLPSpanExporter but i was unable to find how to add basic auth to it.
I have my grafana user_id and api key which i should be able to send in a header like {"Authentication": "Basic XXXX"}
but it doesn’t seem to be supported. Has anyone archived it and has some examples?

more context OTLPSpanExporter - Error parsing metadata · Issue #3076 · open-telemetry/opentelemetry-python · GitHub

1.) I would play with endpoint. Path for GRPC is not very usual, so IMHO endpoint is https://tempo-us-central1.grafana.net or tempo-us-central1.grafana.net:443.

2.) Auth - use env variable: grpc OTLPSpanExporter does not support HTTP authorization headers anymore · Issue #2248 · open-telemetry/opentelemetry-python · GitHub

3.) Make sure you have correct authentication header name/value:

authorization: Basic <base64 data>

and <base64 data>:

$ echo -n "<your user id>:<your api key>" | base64

4.) I would send traces to local OTEL collector first (and that collector will export them to Grafana cloud). Edge cases (e.g. endpoint is not available) may affect your app negatively in your current setup.

1 Like