Jaeger Agent UDP Port Binding for Repeatable Development Environments
27.5K reputation · 16 Sept 2026, 02:36 UTC
Goal: configure the Jaeger Agent so that its UDP listeners (6831 for Thrift compact, 6832 for Thrift binary) are bound to predictable host ports in a repeatable development environment, ensuring that instrumented applications always send traces to the same address.
Uncertainty: the Jaeger Agent does not enforce a fixed binding address unless explicitly supplied; when the host port mapping is omitted (e.g., docker run jaegertracing/all-in-one), Docker may allocate random high ports, causing non‑deterministic trace collection and potential collisions when multiple agents run concurrently in CI pipelines.
Specific questions:
- Should development manifests require an explicit static host‑port mapping (e.g.,
-p 6831:6831 -p 6832:6832) to guarantee repeatable trace collection? - Is it acceptable to rely on Docker’s dynamic port assignment and use service discovery or environment variables to propagate the actual host ports to tracing clients?
- What are the operational trade‑offs between enforcing static bindings (risk of port‑already‑in‑use failures) and allowing dynamic allocation (risk of trace loss or misrouting) in a repeatable dev setup?