Set remote IP and port for servlet HTTP server traces. (#1817)
* Set remote IP and port for servlet HTTP server traces. * Add null check and use broader ServletRequest type instead of HttpServletRequest.
This commit is contained in:
@@ -20,6 +20,8 @@ import java.net.InetSocketAddress;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
import javax.servlet.ServletRequest;
|
||||
|
||||
import org.springframework.cloud.sleuth.Span;
|
||||
import org.springframework.cloud.sleuth.http.HttpServerRequest;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
@@ -131,6 +133,14 @@ class BraveHttpServerRequest implements HttpServerRequest {
|
||||
}
|
||||
return span.remoteIpAndPort(addr.getAddress().getHostAddress(), addr.getPort());
|
||||
}
|
||||
else if (delegate instanceof ServletRequest) {
|
||||
ServletRequest servletRequest = (ServletRequest) delegate;
|
||||
String addr = servletRequest.getRemoteAddr();
|
||||
if (addr == null) {
|
||||
return false;
|
||||
}
|
||||
return span.remoteIpAndPort(addr, servletRequest.getRemotePort());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -107,6 +107,7 @@ public abstract class TraceFilterTests implements TestTracingAwareSupplier {
|
||||
HttpMethod.GET.toString());
|
||||
// we don't check for status_code anymore cause Brave doesn't support it oob
|
||||
// .containsEntry("http.status_code", "200")
|
||||
BDDAssertions.then(this.spans.get(0).getRemoteIp()).isEqualTo("127.0.0.1");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user