Set up Alloy to remote-write to Tempo
This section uses a Grafana Alloy Helm chart deployment to send traces to Tempo.
To do this, you need to create a configuration that can be used by Alloy to receive and export traces in OTLP protobuf
format.
Create a new
values.yaml
file which we’ll use as part of the Alloy install.Edit the
values.yaml
file and add the following configuration to it:alloy: extraPorts: - name: otlp-grpc port: 4317 targetPort: 4317 protocol: TCP configMap: create: true content: |- // Creates a receiver for OTLP gRPC. // You can easily add receivers for other protocols by using the correct component // from the reference list at: https://grafana.com/docs/alloy/latest/reference/components/ otelcol.receiver.otlp "otlp_receiver" { // Listen on all available bindable addresses on port 4317 (which is the // default OTLP gRPC port) for the OTLP protocol. grpc { endpoint = "0.0.0.0:4317" } // Output straight to the OTLP gRPC exporter. We would usually do some processing // first, most likely batch processing, but for this example we pass it straight // through. output { traces = [ otelcol.exporter.otlp.tempo.input, ] } } // Define an OTLP gRPC exporter to send all received traces to GET. // The unique label 'tempo' is added to uniquely identify this exporter. otelcol.exporter.otlp "tempo" { // Define the client for exporting. client { // Send to the locally running Tempo instance, on port 4317 (OTLP gRPC). endpoint = "http://tempo-cluster-distributor.tempo.svc.cluster.local:4317" // Disable TLS for OTLP remote write. tls { // The connection is insecure. insecure = true // Do not verify TLS certificates when connecting. insecure_skip_verify = true } } }
Ensure that you use the specific namespace you’ve installed Tempo in for the OTLP exporter. In the line:
endpoint = "http://tempo-cluster-distributor.tempo.svc.cluster.local:3100"
change
tempo
to reference the namespace where Tempo is installed, for example:http://tempo-cluster-distributor.my-tempo-namespaces.svc.cluster.local:3100
.Deploy Alloy using Helm:
helm install -f values.yaml grafana-alloy grafana/alloy
If you deploy Alloy into a specific namespace, create the namespace first and specify it to Helm by appending
--namespace=<grafana-alloy-namespace>
to the end of the command.