Typically, Tempo HA is programmed to only enable the receiver endpoints for the protocols that are being requested by the currently active tracing
relations. However, you can still send traces to Tempo HA even though no charm currently related to the coordinator is requesting to enable the receiver you need.
This can be handy if, for example, you have an uncharmed workload that is able to send traces in one of the supported formats of Tempo HA.
Prerequisites
This how-to assumes you already have Tempo HA deployed together with COS-Lite stack. Follow How to deploy charmed Tempo HA with COS-Lite first if you need to deploy the stack.
How to manually configure Tempo HA to enable a specific receiver
The tempo-coordinator-k8s
charm exposes, for each tracing protocol it supports, a config option called always_enable_<PROTOCOL>
.
In order to tell Tempo HA to enable a protocol you need, regardless of whether a Juju integration is requesting it, you must set the respective config option to "true"
.
For example, to enable the receiver for the jaeger-thrift-http
protocol:
juju config tempo-coordinator-k8s always_enable_jaeger_thrift_http=true
How to retrieve the endpoint after you manually enabled a receiver
After enabling the protocol, you should be able to see the receiver endpoint ready to accept traces encoded with it on the list of enabled receivers:
$ juju run tempo-coordinator-k8s/0 list-receivers
Running operation 5 with 1 task
- task 6 on unit-tempo-coordinator-k8s-0
Waiting for task 6...
jaeger-grpc: 10.211.88.9:14250
jaeger-thrift-http: http://10.211.88.9:14268
otlp-grpc: 10.211.88.9:4317
otlp-http: http://10.211.88.9:4318
This tells you: you can send traces encoded with the jaeger-thrift-http
protocol to that URL.
Remember that some workloads might need an API endpoint path suffix, such as /api/traces
for jaeger-thrift-http
protocol. Consult your workload documentation for reference.