增加 request_id / trace_id生成
This commit is contained in:
parent
b48a8a61e0
commit
7f9f0adab9
@ -17,10 +17,11 @@ import jakarta.servlet.http.HttpServletResponse;
|
|||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.time.Instant;
|
||||||
import java.util.Enumeration;
|
import java.time.ZoneId;
|
||||||
import java.util.HashMap;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.Map;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
|
||||||
// 初始化请求
|
// 初始化请求
|
||||||
@ -119,6 +120,21 @@ public class RequestInitFilter extends HttpFilter {
|
|||||||
|
|
||||||
// 设置请求ID
|
// 设置请求ID
|
||||||
private void setRequestId(RuntimeContext runtimeContext) {
|
private void setRequestId(RuntimeContext runtimeContext) {
|
||||||
|
String traceId = runtimeContext.getHttpServletRequest().getHeader("X-Front-Trace-Id");
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
Instant instant = Instant.ofEpochMilli(runtimeContext.getStartTimeStamp());
|
||||||
|
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
String formatted = zdt.format(formatter);
|
||||||
|
list.add(runtimeContext.getServerIp()); // 服务器IP
|
||||||
|
list.add(formatted); // 请求时间
|
||||||
|
list.add(UUID.randomUUID().toString()); // 随机字符串
|
||||||
|
String requestId = String.join("-", list); // 拼接成请求ID
|
||||||
|
if (null == traceId || traceId.isEmpty()) {
|
||||||
|
traceId = requestId;
|
||||||
|
}
|
||||||
|
runtimeContext.setRequestId(requestId);
|
||||||
|
runtimeContext.setTraceId(traceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user