public class EagleEyeRequestTracer extends Object
String traceId = EagleEyeRequestTracer.getTraceId(httpRequest);
EagleEyeRequestTracer.startTrace(traceId, req, resp);
try {
// 处理业务逻辑...
chain.doFilter(req, resp);
} finally {
EagleEyeRequestTracer.endTrace(req, resp);
}
startTrace 调用后,一定要保证调用一次 endTrace。
startTrace 和 endTrace 是幂等的,重复调用不会影响逻辑。
如果没有调用 startTrace,直接调用 endTrace,也是可以的。| 构造器和说明 |
|---|
EagleEyeRequestTracer() |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
endTrace(javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse)
结束调用链。
|
static void |
endTrace(javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse,
String resultCode,
int type)
结束调用链,设置响应状态码和调用类型。
|
static String |
getRemoteAddress(javax.servlet.http.HttpServletRequest request)
获取远程客户端的 IP
|
static String |
getTraceId(javax.servlet.http.HttpServletRequest request)
获取 TraceId,如果没有,自动生成。
|
static String |
getTraceId(javax.servlet.http.HttpServletRequest httpRequest,
String ip)
获取 TraceId。
|
static void |
startTrace(String traceId,
javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse)
开始调用链,注意,开始之后,不管后续处理是否正常,都需要调用
endTrace(HttpServletRequest, HttpServletResponse)。 |
static void |
startTraceInner(String traceId,
String rpcId,
String url,
String queryString,
javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse)
开始调用链,允许另外指定 TraceId、RpcId、URL、Query 参数等信息。
|
public static final String getRemoteAddress(javax.servlet.http.HttpServletRequest request)
request - public static final String getTraceId(javax.servlet.http.HttpServletRequest request)
request - getTraceId(HttpServletRequest, String)public static final String getTraceId(javax.servlet.http.HttpServletRequest httpRequest, String ip)
null,则基于指定的 ip,
否则,使用本机 ip
httpRequest - ip - public static final void startTrace(String traceId, javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse)
endTrace(HttpServletRequest, HttpServletResponse)。traceId - httpRequest - httpResponse - public static final void startTraceInner(String traceId, String rpcId, String url, String queryString, javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse)
endTrace(HttpServletRequest, HttpServletResponse)。traceId - url - queryString - httpRequest - httpResponse - public static final void endTrace(javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse)
httpRequest - httpResponse - public static final void endTrace(javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse,
String resultCode,
int type)
httpRequest - httpResponse - resultCode - 建议使用 HTTP 状态码type - Copyright © 2018. All rights reserved.