1. 添加请求开始时间
This commit is contained in:
parent
2a4fa24e45
commit
08f9de153f
|
|
@ -32,12 +32,10 @@ import java.util.List;
|
|||
@Component
|
||||
public class ApiLoggingFilter implements GlobalFilter, Ordered {
|
||||
|
||||
private static final String START_TIME = "startTime";
|
||||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
||||
setTraceId(exchange);
|
||||
exchange.getAttributes().put(START_TIME, System.currentTimeMillis());
|
||||
exchange.getAttributes().put(CommonConstants.START_TIME, System.currentTimeMillis());
|
||||
return chain.filter(exchange.mutate().build()).then(Mono.fromRunnable(() -> {
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
if (log.isInfoEnabled()) {
|
||||
|
|
@ -45,7 +43,7 @@ public class ApiLoggingFilter implements GlobalFilter, Ordered {
|
|||
exchange.getRequest().getMethod().name(), exchange.getRequest().getURI().getHost(),
|
||||
exchange.getRequest().getURI().getPath(), exchange.getRequest().getQueryParams());
|
||||
String token = request.getHeaders().getFirst(CommonConstants.HEAD_TOKEN_KEY);
|
||||
Long startTime = exchange.getAttribute(START_TIME);
|
||||
Long startTime = exchange.getAttribute(CommonConstants.START_TIME);
|
||||
if (startTime != null) {
|
||||
Long executeTime = (System.currentTimeMillis() - startTime);
|
||||
String ip = IPUtils.clientIp(request);
|
||||
|
|
@ -67,7 +65,6 @@ public class ApiLoggingFilter implements GlobalFilter, Ordered {
|
|||
private void setTraceId(ServerWebExchange exchange){
|
||||
String traceId = exchange.getAttribute(CommonConstants.TRACE_ID);
|
||||
if (StringUtils.isEmpty(traceId)){
|
||||
log.info("traceId : {}", traceId);
|
||||
traceId = IdUtils.getId(32);
|
||||
exchange.getAttributes().put(CommonConstants.TRACE_ID, ServletUtils.urlEncode(traceId));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@ public class AuthFilter implements GlobalFilter, Ordered
|
|||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain)
|
||||
{
|
||||
log.info("AuthFilter start");
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
ServerHttpRequest.Builder mutate = request.mutate();
|
||||
|
||||
|
|
@ -67,7 +66,6 @@ public class AuthFilter implements GlobalFilter, Ordered
|
|||
{
|
||||
return chain.filter(exchange);
|
||||
}
|
||||
long start = System.currentTimeMillis();
|
||||
String token = getToken(request, newPath);
|
||||
if (StringUtils.isEmpty(token))
|
||||
{
|
||||
|
|
@ -98,8 +96,6 @@ public class AuthFilter implements GlobalFilter, Ordered
|
|||
// 内部请求来源参数清除
|
||||
removeHeader(mutate);
|
||||
|
||||
long end = System.currentTimeMillis();
|
||||
log.info("auth time {}", end - start);
|
||||
return chain.filter(exchange.mutate().request(mutate.build()).build());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
package com.chushang.gateway.filter;
|
||||
|
||||
import com.chushang.common.core.constant.CommonConstants;
|
||||
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
||||
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 计算请求时间
|
||||
*/
|
||||
@Component
|
||||
public class TimestampHeaderFilter implements GlobalFilter, Ordered {
|
||||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
||||
ServerHttpRequest request = exchange.getRequest();
|
||||
// 创建一个新的请求对象并替换原来的头信息
|
||||
ServerHttpRequest mutatedRequest = request.mutate().headers(headers -> headers.add(CommonConstants.START_TIME, System.currentTimeMillis() + "")).build();
|
||||
// 继续处理请求
|
||||
return chain.filter(exchange.mutate().request(mutatedRequest).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
// 设置过滤器的执行顺序,数值越小,优先级越高
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue