Chapter 10. Distributed tracing

The client offers distributed tracing based on the Jaeger implementation of the OpenTracing standard.

10.1. Enabling distributed tracing

Use the following steps to enable tracing in your application:

Procedure

  1. Add the Jaeger client dependency to your POM file.

    <dependency>
      <groupId>io.jaegertracing</groupId>
      <artifactId>jaeger-client</artifactId>
      <version>${jaeger-version}</version>
    </dependency>

    ${jaeger-version} must be 1.0.0 or later.

  2. Add the jms.tracing option to your connection URI. Set the value to opentracing.

    Example: A connection URI with tracing enabled

    amqps://example.net?jms.tracing=opentracing

  3. Register the global tracer.

    Example: Global tracer registration

    import io.jaegertracing.Configuration;
    import io.opentracing.Tracer;
    import io.opentracing.util.GlobalTracer;
    
    public class Example {
        public static void main(String[] args) {
            Tracer tracer = Configuration.fromEnv("<service-name>").getTracer();
            GlobalTracer.registerIfAbsent(tracer);
    
            // ...
        }
    }

  4. Configure your environment for tracing.

    Example: Tracing configuration

    $ export JAEGER_SAMPLER_TYPE=const
    $ export JAEGER_SAMPLER_PARAM=1
    $ java -jar example.jar net.example.Example

    The configuration shown here is for demonstration purposes. For more information about Jaeger configuration, see Configuration via Environment and Jaeger Sampling.

To view the traces your application captures, use the Jaeger Getting Started to run the Jaeger infrastructure and console.