Jaeger
Send spans from Jaeger clients or a Jaeger agent directly to the gateway. Needs an ingestion key with ingest:traces, sent as Authorization: Bearer <key> (HTTP) or the authorization metadata entry (gRPC).
POST /api/traces Thrift binary Batch (Content-Type: application/vnd.apache.thrift.binary)
jaeger.api_v2.CollectorService/PostSpans gRPC, on the OTLP gRPC port (4317)The gRPC method is on by default; set WT_GATEWAY_JAEGER_GRPC=false on the gateway to turn it off. Only the Batch, Span, Tag, Log and reference parts of the Jaeger models are read.
Mapping: process.serviceName becomes service.name and the process tags become resource attributes. Span tags become attributes, span.kind sets the span kind, and error=true marks the span as failed. Logs become span events (the event field is the event name). Thrift parentSpanId is the parent; for gRPC the first CHILD_OF reference in the same trace is the parent. Every other reference (FOLLOWS_FROM, or another trace) becomes a span link. Thrift trace ids are the low and high 64-bit halves combined into 128 bits; microsecond times are stored as nanoseconds.
Jaeger UDP (6831/6832 compact and binary) is not served by the gateway; point the client at the HTTP endpoint or run an OpenTelemetry Collector with the jaeger receiver and an otlphttp exporter.
Delivery is at-least-once: clients retry failed batches, so duplicates are possible. Do not set wt.* tags; the gateway deletes them.
Status: unit-tested against hand-built payloads, not yet run against a real Jaeger client.