Client features


The table below provides a feature matrix for the existing client libraries. Cells marked with ? indicate that it’s not known if the given client supports the given feature and additional research & documentation update is required.

Data format and transport for reporting spans to Jaeger backend
Feature Go Java Node.js Python C++ C#
Report jaeger.thrift over UDP
Report jaeger.thrift over HTTP
Report Zipkin Thrift over HTTP
Inter-process propagation wire format (headers)
Feature Go Java Node.js Python C++ C#
Uber’s original headers
Zipkin’s B3 headers
W3C Trace Context headers coming coming coming coming coming coming
Support inbound jaeger-debug-id header when there is no trace when there is no trace
Accept baggage from jaeger-baggage headers when there is no trace
Metrics
Feature Go Java Node.js Python C++ C#
Support standard tracer metrics (number of spans started, finished, reported, etc.)
Support standard RPC metrics
Metrics in Prometheus format
Tracer configuration
Feature Go Java Node.js Python C++ C#
Support declarative tracer configuration
Allow configuring tracer tags, aka process tags
Allow remote configuration of samplers
Remotely configurable adaptive sampler
Remotely configurable baggage restrictions coming coming coming
Tracer configuration via environment variables
Feature Go Java Node.js Python C++ C#
JAEGER_SERVICE_NAME
JAEGER_AGENT_HOST
JAEGER_AGENT_PORT
JAEGER_REPORTER_LOG_SPANS - log finished span IDs
JAEGER_REPORTER_MAX_QUEUE_SIZE
JAEGER_REPORTER_FLUSH_INTERVAL
JAEGER_SAMPLER_TYPE - default type of sampler, e.g. probabilistic
JAEGER_SAMPLER_PARAM - default sampler config, e.g. probability 0.001
JAEGER_SAMPLER_MANAGER_HOST_PORT
JAEGER_TAGS - tracer/process tags
JAEGER_DISABLED
JAEGER_RPC_METRICS
JAEGER_SAMPLER_MAX_OPERATIONS
JAEGER_SAMPLER_REFRESH_INTERVAL
JAEGER_ENDPOINT
JAEGER_AUTH_TOKEN
JAEGER_USER
JAEGER_PASSWORD
JAEGER_PROPAGATION
JAEGER_DISABLE_GLOBAL_TRACER