Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The actual invocation of the request by the client (with process name tracer-client) and consequent invocation of the service on the server side (process name tracer-server) is going to generate the following sample traces:

Image Added

 

Please notice that client and server traces are collapsed under one trace with client send / receive, and server send / receive demarcation as is seen in details:

Image Added

 

Example #2: Client and Server with nested trace

In this example server-side implementation of the JAX-RS service is going to call an external system (simulated as a simple delay of 500ms) within its own span. The client-side code stays unchanged.

Code Block
java
java
@Produces( { MediaType.APPLICATION_JSON } )
@GET
public Collection<Book> getBooks(@Context final TracerContext tracer) throws Exception {
    try(final TraceScope scope = tracer.startSpan("Calling External System")) {
        // Simulating a delay of 500ms required to call external system
        Thread.sleep(500);
           
        return Arrays.asList(
            new Book("Apache CXF Web Service Development", "Naveen Balani, Rajeev Hathi")
        );
    }
}

The actual invocation of the request by the client (with process name tracer-client) and consequent invocation of the service on the server side (process nametracer-server) is going to generate the following sample traces:

Image Added

Example #3: Client and Server trace with annotations

...