java110
2022-02-20 8d62257c26dcba1f62e396e6aae30f164ec02b3b
java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java
@@ -8,6 +8,7 @@
import com.java110.dto.trace.TraceEndpointDto;
import com.java110.dto.trace.TraceParamDto;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.EnvironmentConstant;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.kafka.KafkaFactory;
import com.java110.utils.util.DateUtil;
@@ -96,7 +97,7 @@
        return threadLocal.get();
    }
    public static String createTrace(String name, Map<String, Object> headers, String reqData) {
    public static String createTrace(String name, Map<String, Object> headers) {
        String traceId = "";
        String parentId = "";
        if (headers.containsKey(CommonConstant.TRACE_ID)) { //先取trace Id
@@ -111,11 +112,17 @@
        } else {
            parentId = "0";
        }
        return createTrace(name, traceId, parentId, TraceAnnotationsDto.VALUE_CLIENT_SEND, JSONObject.toJSONString(headers), reqData);
        return createTrace(name, traceId, parentId, TraceAnnotationsDto.VALUE_CLIENT_SEND);
    }
    public static String createTrace(String name, String traceId, String parentId, String event, String reqHeader, String reqData) {
    public static String createTrace(String name, String traceId, String parentId, String event) {
        //初始事件
        Environment environment = (Environment) ApplicationContextFactory.getBean(Environment.class);
        //判断调用链是否打开
        if (!EnvironmentConstant.TRACE_SWITCH_ON.equals(environment.getProperty(EnvironmentConstant.TRACE_SWITCH))) {
            return "";
        }
        //全局事务开启者
        TraceDto traceDto = new TraceDto();
        traceDto.setId(GenerateCodeFactory.getUUID());
@@ -123,8 +130,6 @@
        traceDto.setParentSpanId(parentId);
        traceDto.setTimestamp(DateUtil.getCurrentDate().getTime());
        //初始事件
        Environment environment = (Environment) ApplicationContextFactory.getBean(Environment.class);
        TraceAnnotationsDto traceAnnotationsDto = new TraceAnnotationsDto();
        TraceEndpointDto traceEndpointDto = new TraceEndpointDto();
        traceEndpointDto.setServiceName(environment.getProperty("spring.application.name"));
@@ -147,16 +152,29 @@
        traceDto.setAnnotations(traceAnnotationsDtos);
        traceDto.setTraceId(traceId);
        TraceParamDto traceParamDto = new TraceParamDto();
        traceParamDto.setReqHeader(reqHeader);
        traceParamDto.setReqParam(reqData);
        put(traceDto.getId(), traceDto);
        putSpanId(SPAN_ID, traceDto.getId());
        return traceDto.getId();
    }
    /**
     * 添加参数
     *
     * @param traceParamDto
     */
    public static void putParams(TraceParamDto traceParamDto) {
        TraceDto traceDto = getTraceDto();
        if (traceDto == null) {
            return;
        }
        traceDto.setParam(traceParamDto);
        put(getSpanId(SPAN_ID), traceDto);
    }
    /**
     * 添加动作时间
     *
     * @param event