From 8dc6389c6d65d49bfb2569a39ffa3494b5e7ff48 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 12 五月 2022 12:28:25 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java |   66 +++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java b/java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java
index 19c2e42..4f279c4 100644
--- a/java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java
+++ b/java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java
@@ -3,11 +3,9 @@
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.log.LoggerFactory;
-import com.java110.dto.trace.TraceAnnotationsDto;
-import com.java110.dto.trace.TraceDto;
-import com.java110.dto.trace.TraceEndpointDto;
-import com.java110.dto.trace.TraceParamDto;
+import com.java110.dto.trace.*;
 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 +94,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 +109,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 +127,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,13 +149,33 @@
         traceDto.setAnnotations(traceAnnotationsDtos);
         traceDto.setTraceId(traceId);
 
-        TraceParamDto traceParamDto = new TraceParamDto();
-        traceParamDto.setReqHeader(reqHeader);
-        traceParamDto.setReqParam(reqData);
+        traceDto.setDbs(new ArrayList<>());
 
         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;
+        }
+
+        //濡傛灉瀛樺湪 鍒欒烦杩�
+        if (traceDto.getParam() != null) {
+            return;
+        }
+
+        traceDto.setParam(traceParamDto);
+        put(getSpanId(SPAN_ID), traceDto);
+
     }
 
     /**
@@ -206,6 +228,26 @@
     }
 
     /**
+     * 娣诲姞db
+     *
+     * @param sql
+     */
+    public static void putDbs(String sql, String param, long duration) {
+        TraceDto traceDto = getTraceDto();
+
+        if (traceDto == null) {
+            return;
+        }
+        List<TraceDbDto> dbs = traceDto.getDbs();
+        TraceDbDto traceDbDto = new TraceDbDto();
+        traceDbDto.setDbSql(sql);
+        traceDbDto.setParam(param);
+        traceDbDto.setDuration(duration+"");
+        dbs.add(traceDbDto);
+        traceDto.setDbs(dbs);
+    }
+
+    /**
      * 娓呯悊浜嬪姟
      */
     public static void clearTrace(String spanId) {

--
Gitblit v1.8.0