Jaeger exporter (via OTLP)

Configure the Jaeger exporter for tracing


Enable and configure the Jaeger exporter for tracing in the GraphOS Router or Apollo Router Core.

For general tracing configuration, refer to Router Tracing Configuration.

Jaeger OTLP configuration

Since Jaeger v1.35.0, Jaeger supports native OTLP ingestion, and it's the recommended way to send traces to Jaeger.

When running Jaeger with Docker, make sure that port 4317 is exposed and that COLLECTOR_OTLP_ENABLED is set to true. For example:

Bash
1docker run --name jaeger \
2  -e COLLECTOR_OTLP_ENABLED=true \
3  -p 16686:16686 \
4  -p 4317:4317 \
5  -p 4318:4318 \
6  jaegertracing/all-in-one:1.35

To configure the router to send traces via OTLP, set the Jaeger endpoint with port 4317. For example:

YAML
router.yaml
1telemetry:
2  exporters:
3     tracing:
4       otlp:
5         enabled: true   
6         # Optional endpoint, either 'default' or a URL (Defaults to http://127.0.0.1:4317)
7         endpoint: "http://${env.JAEGER_HOST}:4317"

See OTLP configuration for more details on settings.

Jaeger Native configuration

⚠️ caution
Native Jaegar tracing is deprecated and will be removed in a future release of the router. Use Jaeger via OTLP instead.

The router can be configured to export tracing data to Jaeger either via an agent or HTTP collector.

Unless explicitly configured to use a collector, the router will use Jaeger agent by default.

YAML
router.yaml
1telemetry:
2  exporters:
3     tracing:
4       jaeger:
5         enabled: true  

enabled

Set to true to enable the Jaeger exporter. Defaults to false.

batch_processor

All exporters support configuration of a batch span processor with batch_processor.

You must tune your batch_processor configuration if you see any of the following messages in your logs:

  • OpenTelemetry trace error occurred: cannot send span to the batch span processor because the channel is full

  • OpenTelemetry metrics error occurred: cannot send span to the batch span processor because the channel is full

The exact settings depend on the bandwidth available for you to send data to your application peformance monitor (APM) and the bandwidth configuration of your APM. Expect to tune these settings over time as your application changes.

YAML
1telemetry:
2  exporters:
3    tracing:
4      jaeger: 
5        batch_processor: 
6          max_export_batch_size: 512
7          max_concurrent_exports: 1
8          max_export_timeout: 30s 
9          max_queue_size: 2048
10          scheduled_delay: 5s

batch_processor configuration reference

AttributeDefaultDescription
scheduled_delay5sThe delay in seconds from receiving the first span to sending the batch.
max_concurrent_exports1The maximum number of overlapping export requests.
max_export_batch_size512The number of spans to include in a batch. May be limited by maximum message size limits.
max_export_timeout30sThe timeout in seconds for sending spans before dropping the data.
max_queue_size2048The maximum number of spans to be buffered before dropping span data.

Jaeger configuration reference

AttributeDefaultDescription
enabledfalseEnable the OTLP exporter.
collectorCollector specific settings.
agentAgent specific settings.
batch_processorThe batch processor settings.

Agent configuration

If you are running Jaeger agent then use the agent configuration to set the agent endpoint. For example:

YAML
router.yaml
1telemetry:
2  exporters:
3     tracing:
4       jaeger:
5         enabled: true
6         # Optional agent configuration,
7         agent:
8           # Optional endpoint, either 'default' or a socket address (Defaults to 127.0.0.1:6832)
9           endpoint: "${env.JAEGER_HOST}:6832"  

Jaeger agent configuration reference

AttributeDefaultDescription
endpointfalseEnable the OTLP exporter.

Collector configuration

If you are running Jaeger collector then use the collector configuration to set the agent endpoint. For example:

YAML
router.yaml
1telemetry:
2  exporters:
3     tracing:
4       jaeger:
5         enabled: true
6         # Optional collector configuration,
7         collector:
8           # Optional endpoint, either 'default' or a URL (Defaults to http://127.0.0.1:14268/api/traces)
9           endpoint: "http://${env.JAEGER_HOST}:14268/api/traces"
10           username: "${env.JAEGER_USERNAME}"
11           password: "${env.JAEGER_PASSWORD}"

Jaeger Collector configuration reference

AttributeDefaultDescription
endpointfalseEnable the OTLP exporter.
usernameThe username for Jaeger collector.
passwordThe password for Jaeger collector.
Feedback

Edit on GitHub

Forums