如何添加链路追踪

如何添加链路追踪

  1. 添加interceptor,生成traceId
public class TraceIdInterceptor implements HandlerInterceptor {
//    String traceId = IdUtil.fastSimpleUUID();
//        request.setAttribute("traceId", traceId);
//        MDC.put("traceId", traceId);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String traceId = request.getHeader("traceId");
        if (traceId == null) {
            traceId = IdUtil.fastSimpleUUID();
        }
        request.setAttribute("traceId", traceId);
        MDC.put("traceId", traceId);
        return true;
    }
}

注册拦截器


        registry.addInterceptor(new TraceIdInterceptor()).addPathPatterns("/**");
  1. 添加forest 拦截器
package com.ssbio.ssbioerpapi.interceptor

import com.dtflys.forest.http.ForestRequest
import com.dtflys.forest.interceptor.Interceptor
import com.ruoyi.common.utils.ServletUtils

class TraceInterceptor : Interceptor<String> {

    override fun beforeExecute(request: ForestRequest<*>): Boolean {
        request.addHeader("traceId", ServletUtils.getRequest().getAttribute("traceId"))
        return true
    }
}


注册forest拦截器

forest:
  timeout: 50000
  connect-timeout: 50000
  read-timeout: 50000
  interceptors: com.ssbio.ssbioerpapi.interceptor.TraceInterceptor
 
posted @ 2024-06-27 16:19  天空只是云  阅读(1)  评论(0编辑  收藏  举报