mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-07-07 13:03:34 +02:00
Add option to disable request tracing
This commit is contained in:
@@ -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 ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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 ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user