
In these scenarios the Jaeger Clients can be configured to submit spans directly to the Collectors over HTTP/HTTPS.

In some cases it is not feasible to deploy Jaeger Agent next to the application, for example, when the application code is running as AWS Lambda function. Since Jaeger version 1.11 the official and recommended protocol between Agents and Collectors is gRPC with Protobuf as defined in collector.proto IDL file. In a typical Jaeger deployment, Agents receive spans from Clients and forward them to Collectors. The Agent’s API is defined by agent.thrift IDL file.įor legacy reasons, the Agent also accepts spans in Zipkin format, however, only very old versions of Jaeger clients can send data in that format and it is officially deprecated. Most Jaeger Clients use Thrift’s compact encoding, however some client libraries do not support it (notably, Node.js) and use Thrift’s binary encoding (sent to a different UDP port). The primary API is a UDP packet that contains a Thrift-encoded Batch struct defined in jaeger.thrift IDL file, located in the jaeger-idl repository. The Agent can only receive spans over UDP in Thrift format. At this time they support two sets of non-overlapping APIs.


If breaking changes are going to be made in the future, they will result in a new API version, e.g. stable - the API guarantees backwards compatibility.

The following labels are used to describe API compatibility guarantees. Jaeger components implement various APIs for saving or retrieving trace data. Version 1.23 Click here for the latest version
