Add option to disable request tracing

This commit is contained in:
Sebastian Sdorra
2020-11-04 09:44:08 +01:00
parent 5694a89589
commit 423402e62b
3 changed files with 32 additions and 1 deletions

View File

@@ -257,6 +257,17 @@ public abstract class BaseHttpRequest<T extends BaseHttpRequest>
return self();
}
/**
* Disables tracing for the request.
* This should only be done for internal requests.
*
* @return request instance
*/
public T disableTracing() {
this.spanKind = null;
return self();
}
//~--- get methods ----------------------------------------------------------
/**

View File

@@ -190,6 +190,16 @@ public class DefaultAdvancedHttpClient extends AdvancedHttpClient
*/
@Override
protected AdvancedHttpResponse request(BaseHttpRequest<?> request) throws IOException {
String spanKind = request.getSpanKind();
if (Strings.isNullOrEmpty(spanKind)) {
logger.debug("execute request {} without tracing", request.getUrl());
return doRequest(request);
}
return doRequestWithTracing(request);
}
@Nonnull
private DefaultAdvancedHttpResponse doRequestWithTracing(BaseHttpRequest<?> request) throws IOException {
try (Span span = tracer.span(request.getSpanKind())) {
span.label("url", request.getUrl());
span.label("method", request.getMethod());

View File

@@ -279,7 +279,7 @@ public class DefaultAdvancedHttpClientTest
when(connection.getResponseCode()).thenReturn(500);
new AdvancedHttpRequest(client, HttpMethod.GET, "https://www.scm-manager.org").request();
verify(tracer).span("http-request");
verify(tracer).span("HTTP Request");
verify(span).label("url", "https://www.scm-manager.org");
verify(span).label("method", "GET");
verify(span).label("status", 500);
@@ -308,6 +308,16 @@ public class DefaultAdvancedHttpClientTest
verify(span).close();
}
@Test
public void shouldNotCreateSpan() throws IOException {
when(connection.getResponseCode()).thenReturn(200);
new AdvancedHttpRequest(client, HttpMethod.GET, "https://www.scm-manager.org")
.disableTracing().request();
verify(tracer, never()).span(anyString());
}
//~--- set methods ----------------------------------------------------------
/**