Skip to Content

Jaeger

Use Jaeger as an OTLP-compatible backend for KalamDB distributed tracing.

Download Compose Example

Docker Compose Details

The compose file runs:

jaeger: image: jaegertracing/jaeger:latest environment: COLLECTOR_OTLP_ENABLED: "true" ports: - "16686:16686" # Jaeger UI - "4317:4317" # OTLP gRPC receiver - "4318:4318" # OTLP HTTP receiver

Start it:

docker compose up -d

Jaeger UI: http://127.0.0.1:16686

Connect KalamDB → Jaeger

Via gRPC (default, port 4317)

[logging.otlp] enabled = true endpoint = "http://127.0.0.1:4317" protocol = "grpc" service_name = "kalamdb-server" timeout_ms = 3000

Via HTTP (port 4318)

[logging.otlp] enabled = true endpoint = "http://127.0.0.1:4318" protocol = "http" service_name = "kalamdb-server" timeout_ms = 3000

The OTLP HTTP exporter appends /v1/traces automatically.

Via Environment Variables

export KALAMDB_OTLP_ENABLED=true export KALAMDB_OTLP_ENDPOINT="http://127.0.0.1:4317" export KALAMDB_OTLP_PROTOCOL="grpc" export KALAMDB_OTLP_SERVICE_NAME="kalamdb-server"

What to Expect in Jaeger UI

After starting KalamDB with OTEL enabled:

  1. Open http://127.0.0.1:16686.
  2. Select the service name from the dropdown (default: kalamdb-server).
  3. Click Find Traces.
  4. You should see traces for API requests, SQL execution, and storage operations.

Each trace shows the full request lifecycle — from API entry through SQL parsing, query execution, and storage I/O.

Troubleshooting

SymptomCauseFix
No service in Jaeger dropdownOTEL not enabled or no traffic yetSet enabled = true, execute some SQL, then refresh
Service appears but no tracesEndpoint mismatchVerify protocol matches the port: grpc → 4317, http → 4318
Connection refusedJaeger not running or wrong portRun docker compose ps to verify Jaeger is up
Traces delayedBatch export timeoutDefault timeout is 3000ms; increase timeout_ms if network is slow

For all OTEL configuration options and environment variable overrides, see OpenTelemetry (OTEL).

Last updated on