增加 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 java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.time.Instant;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
// 初始化请求
|
||||
@ -119,6 +120,21 @@ public class RequestInitFilter extends HttpFilter {
|
||||
|
||||
// 设置请求ID
|
||||
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