Send Jaeger traces to Promscale

On Promscale 0.14.0 and above, you can natively use Jaeger gRPC based remote storage. On Promscale 0.11.0 and above, you can natively use OpenTelemetry Protocol (OTLP) for traces. To ingest Jaeger traces to Promscale, you can either:

  • Use the Jaeger Collector to ingest Jaeger spans directly to configured remote storage. This avoids using any non-Jaeger components, including the OpenTelemetry collector.
  • Use the OpenTelemetry Collector to convert Jaeger traces to OpenTelemetry traces.

Send data using the Jaeger Collector

You can configure the Jaeger Collector to store the traces using Promscale’s native implementation of Jaeger gRPC storage specification.

Here’s an example configuration to enable the Jaeger collector to forward traces to Promscale:

  1. docker run \
  2. -e SPAN_STORAGE_TYPE=grpc-plugin \
  3. -e GRPC_STORAGE_SERVER="<PROMSCALE_HOST>:<gRPC_PORT>" \
  4. jaegertracing/jaeger-collector:1.37.0

Where:

  • <PROMSCALE_HOST>: hostname of Promscale.
  • <gRPC_PORT>: gRPC port of Promscale. The default port is 9202.

If you are running the Jaeger Collector and the Promscale Connector on a Kubernetes cluster, the endpoint parameter is similar to endpoint: "promscale-connector.default.svc.cluster.local:<PORT>"

note

This is the preferred option, unless you need the additional capabilities of the OpenTelemetry collectorotelcol-config.

Send data using the OpenTelemetry Collector

You can configure the OpenTelemetry Collector to forward Jaeger traces to Promscale using the Jaeger receiver and the OpenTelemetry exporter.

Here’s an example configuration file for the OpenTelemetry Collector to forward traces to Promscale after batch processing the data:

  1. receivers:
  2. jaeger:
  3. protocols:
  4. grpc:
  5. thrift_binary:
  6. thrift_compact:
  7. thrift_http:
  8. exporters:
  9. otlp:
  10. endpoint: "<PROMSCALE_HOST>:<gRPC_PORT>"
  11. tls:
  12. insecure: true
  13. sending_queue:
  14. queue_size: 1000000
  15. timeout: 10s
  16. processors:
  17. batch:
  18. send_batch_size: 4000
  19. send_batch_max_size: 4000
  20. timeout: 10s
  21. service:
  22. pipelines:
  23. traces:
  24. receivers: [jaeger]
  25. exporters: [otlp]
  26. processors: [batch]

Where:

  • <PROMSCALE_HOST>: hostname of Promscale.
  • <gRPC_PORT>: gRPC port of Promscale. The default port is 9202.

If you are running the OTLP Collector and the Promscale Connector on a Kubernetes cluster, the endpoint parameter is similar to endpoint: "promscale-connector.default.svc.cluster.local:<PORT>"

The default ports exposed by the OpenTelemetry Collector Jaeger receiver are:

  • 14250 : gRPC
  • 6832 : thrift_binary These are the ports where you should send your Jaeger traces.
  • 6831 : thrift_compact
  • 14268 : thrift_http

For more information about the OpenTelemetry Collector, see the OpenTelemetry documentation.