public void makeInvoke(Server server, HttpUriRequest request, HTTPHandler handler){ try { HttpHost host = determineTarget(request); if(server != null) host = new HttpHost(server.getHost(),server.getPort(),host.getSchemeName()); Span span = tracer.nextSpan().name("HTTPInvoker.invoke").kind(Span.Kind.CLIENT).start(); span.tag("server",server == null ? host.getHostName() : server.getHostPort()); span.tag("attempt_count",context.getAttemptCount() + ""); String reqUri = request.getURI().toString(); if(LOGGER.isInfoEnabled()) { LOGGER.info(request.toString()); } propagationTraceInfo(request, span); Promise<HttpResponse> promise = httpClient.execute(host,request); promise.onRedeem(new SuccessCallback(span,handler,this,retryHandler), Promise.toExecutor(executionContext)); promise.onFailure(new FailureCallback(reqUri,span,handler,this,retryHandler),Promise.toExecutor(executionContext)); } catch (Throwable e) { handler.onThrowable(e); LOGGER.error("{} http error,with request:{},server:{}",httpClient.getName(),request,server); } }