提交 765b15e0 编写于 作者: A ascrutae

fix tomcat span without peer host and peer port issue

上级 21696f13
......@@ -55,10 +55,10 @@ public class DubboInterceptor implements InstanceMethodsAroundInterceptor {
Tags.URL.set(span, generateRequestURL(requestURL, invocation));
Tags.COMPONENT.set(span, DUBBO_COMPONENT);
Tags.SPAN_LAYER.asRPCFramework(span);
Tags.PEER_HOST.set(span, requestURL.getHost());
Tags.PEER_PORT.set(span, requestURL.getPort());
if (isConsumer) {
Tags.PEER_HOST.set(span, requestURL.getHost());
Tags.PEER_PORT.set(span, requestURL.getPort());
Tags.SPAN_KIND.set(span, Tags.SPAN_KIND_CLIENT);
ContextCarrier contextCarrier = new ContextCarrier();
ContextManager.INSTANCE.inject(contextCarrier);
......
......@@ -43,6 +43,8 @@ public class TomcatInterceptor implements InstanceMethodsAroundInterceptor {
Span span = ContextManager.INSTANCE.createSpan(request.getRequestURI());
Tags.COMPONENT.set(span, TOMCAT_COMPONENT);
Tags.PEER_HOST.set(span, fetchRequestPeerHost(request));
Tags.PEER_PORT.set(span, request.getRemotePort());
Tags.SPAN_KIND.set(span, Tags.SPAN_KIND_SERVER);
Tags.URL.set(span, request.getRequestURL().toString());
Tags.SPAN_LAYER.asHttp(span);
......@@ -76,4 +78,29 @@ public class TomcatInterceptor implements InstanceMethodsAroundInterceptor {
Tags.ERROR.set(span, true);
}
/**
*
* @param request
* @return
*/
public String fetchRequestPeerHost(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册