Optimize default settings of trace id

This commit is contained in:
hongqiaowei
2021-09-26 20:26:03 +08:00
parent 42e478b265
commit d41bcb2e97
3 changed files with 21 additions and 12 deletions

View File

@@ -72,10 +72,10 @@ public class SystemConfig {
@Value("${fizz-trace-id.header:X-Trace-Id}")
private String fizzTraceIdHeader;
@Value("${fizz-trace-id.value-strategy:}")
@Value("${fizz-trace-id.value-strategy:requestId}")
private String fizzTraceIdValueStrategy;
@Value("${fizz-trace-id.value-prefix:}")
@Value("${fizz-trace-id.value-prefix:fizz}")
private String fizzTraceIdValuePrefix;
public String fizzTraceIdHeader() {

View File

@@ -59,13 +59,15 @@ public class FlowControlFilter extends FizzWebFilter {
private static final Logger log = LoggerFactory.getLogger(FlowControlFilter.class);
private static final String admin = "admin";
private static final String admin = "admin";
private static final String actuator = "actuator";
private static final String actuator = "actuator";
private static final String uuid = "uuid";
private static final String uuid = "uuid";
public static final String ADMIN_REQUEST = "$a";
private static final String defaultFizzTraceIdValueStrategy = "requestId";
public static final String ADMIN_REQUEST = "$a";
@Resource
private FlowControlFilterProperties flowControlFilterProperties;
@@ -166,16 +168,18 @@ public class FlowControlFilter extends FizzWebFilter {
private void setTraceId(ServerWebExchange exchange) {
String traceId = exchange.getRequest().getHeaders().getFirst(systemConfig.fizzTraceIdHeader());
if (StringUtils.isBlank(traceId)) {
if (StringUtils.isBlank(systemConfig.fizzTraceIdValueStrategy())) {
String fizzTraceIdValueStrategy = systemConfig.fizzTraceIdValueStrategy();
if (fizzTraceIdValueStrategy.equals(defaultFizzTraceIdValueStrategy)) {
traceId = exchange.getRequest().getId();
} else if (systemConfig.fizzTraceIdValueStrategy().equals(uuid)) {
} else if (fizzTraceIdValueStrategy.equals(uuid)) {
traceId = UUIDUtil.getUUID();
} else {
throw Utils.runtimeExceptionWithoutStack("unsupported " + systemConfig.fizzTraceIdValueStrategy() + " trace id value strategy!");
throw Utils.runtimeExceptionWithoutStack("unsupported " + fizzTraceIdValueStrategy + " trace id value strategy!");
}
}
if (StringUtils.isNotBlank(systemConfig.fizzTraceIdValuePrefix())) {
traceId = systemConfig.fizzTraceIdValuePrefix() + traceId;
String fizzTraceIdValuePrefix = systemConfig.fizzTraceIdValuePrefix();
if (StringUtils.isNotBlank(fizzTraceIdValuePrefix)) {
traceId = fizzTraceIdValuePrefix + Constants.Symbol.DASH + traceId;
}
exchange.getAttributes().put(WebUtils.TRACE_ID, traceId);
}