| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | } 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()); |
| | |
| | | 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")); |
| | |
| | | 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 |