Class SegmentContextExecutors

java.lang.Object
com.amazonaws.xray.contexts.SegmentContextExecutors

public final class SegmentContextExecutors extends Object
Executors that will mount a segment before running a command. When switching threads, for example when instrumenting an asynchronous application, it is recommended to use one of these Executors to make sure callbacks have the trace segment available.

 DynamoDbAsyncClient client = DynamoDbAsyncClient.create();

 client.getItem(request).thenComposeAsync(response -> {
     // If we did not provide the segment context executor, this request would not be traced correctly.
     return client.getItem(request2);
 }, SegmentContextExecutors.newSegmentContextExecutor()); *
 
  • Method Details

    • newSegmentContextExecutor

      public static Executor newSegmentContextExecutor()
      Returns a new Executor which will run any tasks with the current segment mounted.
    • newSegmentContextExecutor

      public static Executor newSegmentContextExecutor(@Nullable Segment segment)
      Returns a new Executor which will run any tasks with the provided Segment mounted. If segment is null, the executor is a no-op.
    • newSegmentContextExecutor

      public static Executor newSegmentContextExecutor(AWSXRayRecorder recorder, @Nullable Segment segment)
      Returns a new Executor which will run any tasks with the provided Segment mounted in the provided AWSXRayRecorder. If segment is null, the executor is a no-op.