Optimize default settings of trace id
This commit is contained in:
@@ -105,4 +105,9 @@ refresh-local-cache:
|
|||||||
|
|
||||||
fizz:
|
fizz:
|
||||||
aggregate:
|
aggregate:
|
||||||
writeMapNullValue: false
|
writeMapNullValue: false
|
||||||
|
|
||||||
|
fizz-trace-id:
|
||||||
|
header: X-Trace-Id # default
|
||||||
|
value-strategy: requestId # default, or can be uuid
|
||||||
|
value-prefix: fizz # default
|
||||||
|
|||||||
@@ -72,10 +72,10 @@ public class SystemConfig {
|
|||||||
@Value("${fizz-trace-id.header:X-Trace-Id}")
|
@Value("${fizz-trace-id.header:X-Trace-Id}")
|
||||||
private String fizzTraceIdHeader;
|
private String fizzTraceIdHeader;
|
||||||
|
|
||||||
@Value("${fizz-trace-id.value-strategy:}")
|
@Value("${fizz-trace-id.value-strategy:requestId}")
|
||||||
private String fizzTraceIdValueStrategy;
|
private String fizzTraceIdValueStrategy;
|
||||||
|
|
||||||
@Value("${fizz-trace-id.value-prefix:}")
|
@Value("${fizz-trace-id.value-prefix:fizz}")
|
||||||
private String fizzTraceIdValuePrefix;
|
private String fizzTraceIdValuePrefix;
|
||||||
|
|
||||||
public String fizzTraceIdHeader() {
|
public String fizzTraceIdHeader() {
|
||||||
|
|||||||
@@ -59,13 +59,15 @@ public class FlowControlFilter extends FizzWebFilter {
|
|||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(FlowControlFilter.class);
|
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
|
@Resource
|
||||||
private FlowControlFilterProperties flowControlFilterProperties;
|
private FlowControlFilterProperties flowControlFilterProperties;
|
||||||
@@ -166,16 +168,18 @@ public class FlowControlFilter extends FizzWebFilter {
|
|||||||
private void setTraceId(ServerWebExchange exchange) {
|
private void setTraceId(ServerWebExchange exchange) {
|
||||||
String traceId = exchange.getRequest().getHeaders().getFirst(systemConfig.fizzTraceIdHeader());
|
String traceId = exchange.getRequest().getHeaders().getFirst(systemConfig.fizzTraceIdHeader());
|
||||||
if (StringUtils.isBlank(traceId)) {
|
if (StringUtils.isBlank(traceId)) {
|
||||||
if (StringUtils.isBlank(systemConfig.fizzTraceIdValueStrategy())) {
|
String fizzTraceIdValueStrategy = systemConfig.fizzTraceIdValueStrategy();
|
||||||
|
if (fizzTraceIdValueStrategy.equals(defaultFizzTraceIdValueStrategy)) {
|
||||||
traceId = exchange.getRequest().getId();
|
traceId = exchange.getRequest().getId();
|
||||||
} else if (systemConfig.fizzTraceIdValueStrategy().equals(uuid)) {
|
} else if (fizzTraceIdValueStrategy.equals(uuid)) {
|
||||||
traceId = UUIDUtil.getUUID();
|
traceId = UUIDUtil.getUUID();
|
||||||
} else {
|
} 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())) {
|
String fizzTraceIdValuePrefix = systemConfig.fizzTraceIdValuePrefix();
|
||||||
traceId = systemConfig.fizzTraceIdValuePrefix() + traceId;
|
if (StringUtils.isNotBlank(fizzTraceIdValuePrefix)) {
|
||||||
|
traceId = fizzTraceIdValuePrefix + Constants.Symbol.DASH + traceId;
|
||||||
}
|
}
|
||||||
exchange.getAttributes().put(WebUtils.TRACE_ID, traceId);
|
exchange.getAttributes().put(WebUtils.TRACE_ID, traceId);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user