@Override protected <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> void doExecute( Action<Request, Response, RequestBuilder> action, Request request, ActionListener<Response> listener) { Tracer.SpanBuilder spanBuilder = tracer.buildSpan(request.getClass().getSimpleName()) .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT); Span span = spanBuilder.start(); SpanDecorator.onRequest(span); ActionListener<Response> actionFuture = new TracingResponseListener<>(listener, span); super.doExecute(action, request, actionFuture); } }