liukx 4 سال پیش
والد
کامیت
7b8155699e
52فایلهای تغییر یافته به همراه2588 افزوده شده و 319 حذف شده
  1. 11 1
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/utils/ResponseUtils.java
  2. 48 40
      jay-monitor-data-server/pom.xml
  3. 20 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartition.java
  4. 214 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartitionImpl.java
  5. 2 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/BeanConfig.java
  6. 10 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/props/MonitorProperties.java
  7. 83 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/TraceConsoleController.java
  8. 125 121
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/TraceController.java
  9. 2 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/daos/PartitionOperation.java
  10. 1 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/StoreType.java
  11. 9 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorMQIndex.java
  12. 9 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorSQLIndex.java
  13. 10 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorUrlIndex.java
  14. 227 13
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/MQRequest.java
  15. 24 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PageRequest.java
  16. 16 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PartitionRequest.java
  17. 248 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/SQLRequest.java
  18. 169 12
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/URLRequest.java
  19. 46 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/common/PageInfoModel.java
  20. 7 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/trace/MQTraceResponse.java
  21. 7 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/trace/SQLTraceResponse.java
  22. 6 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/trace/URLTraceResponse.java
  23. 21 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/AbstractManager.java
  24. 0 32
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/AbstractStoreProcess.java
  25. 42 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/BigTextStoreProcess.java
  26. 23 3
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/StoreDataManager.java
  27. 10 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/TraceSearchProcess.java
  28. 66 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/TranceJsonManager.java
  29. 51 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractElasticSearchStoreProcess.java
  30. 52 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractTraceElasticSearch.java
  31. 41 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/ElasticMQStoreProcess.java
  32. 32 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/ElasticSQLStoreProcess.java
  33. 28 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/ElasticURLStoreProcess.java
  34. 39 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/MQElasticSearchProcess.java
  35. 40 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/SQLElasticSearchProcess.java
  36. 40 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/URLElasticSearchProcess.java
  37. 10 24
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlMQStoreProcess.java
  38. 4 37
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlSQLStoreProcess.java
  39. 5 21
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlUrlStoreProcess.java
  40. 39 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/ESUtils.java
  41. 116 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/JayDataUtils.java
  42. 1 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/MonitorPropertiesUtil.java
  43. 13 6
      jay-monitor-data-server/src/main/resources/application-dev.yml
  44. 3 1
      jay-monitor-data-server/src/main/resources/application.yml
  45. 10 0
      jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/SpringRunCase.java
  46. 28 0
      jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/StoreDataManagerTest.java
  47. 33 0
      jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/TranceJsonManagerTest.java
  48. 49 0
      jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/ESTestModel.java
  49. 144 0
      jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/ElasticMQStoreProcessTest.java
  50. 342 0
      jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/MusicModel.java
  51. 12 2
      jay-monitor-data-server/src/test/resources/application-dev.yml
  52. 0 1
      数据调度监控.md

+ 11 - 1
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/utils/ResponseUtils.java

@@ -157,6 +157,12 @@ public class ResponseUtils {
         }
     }
 
+    public static void checkNull(Object obj, String msg) {
+        if (obj == null || obj.toString().trim().equals("")) {
+            exceptionMsg(msg);
+        }
+    }
+
     /**
      * 判断字段是否为空
      *
@@ -185,7 +191,11 @@ public class ResponseUtils {
     private static void businessException(Enum<? extends EnumService> info) {
         String msg = ((EnumService) info).getMessage();
         String code = ((EnumService) info).getCode();
-        throw new BusinessException(code, msg);
+        exceptionMsg(msg);
+    }
+
+    private static void exceptionMsg(String msg) {
+        throw new BusinessException("BUSINESSS", msg);
     }
 
     /**

+ 48 - 40
jay-monitor-data-server/pom.xml

@@ -11,7 +11,9 @@
     <artifactId>jay-monitor-data-server</artifactId>
 
     <properties>
-<!--        <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>-->
+        <!--        <thymeleaf.version>3.0
+        .11.RELEASE</thymeleaf.version>-->
+        <elasticsearch.version>7.3.1</elasticsearch.version>
     </properties>
 
     <dependencies>
@@ -27,6 +29,12 @@
             <version>1.0-SNAPSHOT</version>
         </dependency>
 
+        <dependency>
+            <groupId>cn.zxporz</groupId>
+            <artifactId>esclientrhl</artifactId>
+            <version>7.0.0</version>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
@@ -42,19 +50,19 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-logging</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.elab.marketing</groupId>-->
-<!--            <artifactId>elab-marketing-core</artifactId>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>com.elab.marketing</groupId>-->
+        <!--            <artifactId>elab-marketing-core</artifactId>-->
+        <!--        </dependency>-->
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.vladsch.flexmark</groupId>-->
-<!--            <artifactId>flexmark-all</artifactId>-->
-<!--            <version>0.62.2</version>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>com.vladsch.flexmark</groupId>-->
+        <!--            <artifactId>flexmark-all</artifactId>-->
+        <!--            <version>0.62.2</version>-->
+        <!--        </dependency>-->
 
         <!-- spring boot web -->
         <dependency>
@@ -100,22 +108,22 @@
             <version>3.10.2</version>
         </dependency>
 
-<!--        <dependency>-->
-<!--            <groupId>org.springframework.cloud</groupId>-->
-<!--            <artifactId>spring-cloud-starter-eureka</artifactId>-->
-<!--            <version>1.4.7.RELEASE</version>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.cloud</groupId>-->
+        <!--            <artifactId>spring-cloud-starter-eureka</artifactId>-->
+        <!--            <version>1.4.7.RELEASE</version>-->
+        <!--        </dependency>-->
 
-<!--        <dependency>-->
-<!--            <groupId>org.springframework.cloud</groupId>-->
-<!--            <artifactId>spring-cloud-starter</artifactId>-->
-<!--            <version>2.1.3.RELEASE</version>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.cloud</groupId>-->
+        <!--            <artifactId>spring-cloud-starter</artifactId>-->
+        <!--            <version>2.1.3.RELEASE</version>-->
+        <!--        </dependency>-->
 
-<!--        <dependency>-->
-<!--            <groupId>org.mybatis.spring.boot</groupId>-->
-<!--            <artifactId>mybatis-spring-boot-starter</artifactId>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.mybatis.spring.boot</groupId>-->
+        <!--            <artifactId>mybatis-spring-boot-starter</artifactId>-->
+        <!--        </dependency>-->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
@@ -131,25 +139,25 @@
             <groupId>com.github.liuyueyi.quick-media</groupId>
             <artifactId>markdown-plugin</artifactId>
             <version>2.5.2</version>
-<!--            <exclusions>-->
-<!--                <exclusion>-->
-<!--                    <artifactId>flexmark</artifactId>-->
-<!--                    <groupId>com.vladsch.flexmark</groupId>-->
-<!--                </exclusion>-->
-<!--                <exclusion>-->
-<!--                    <artifactId>flexmark-ext-tables</artifactId>-->
-<!--                    <groupId>com.vladsch.flexmark</groupId>-->
-<!--                </exclusion>-->
-<!--            </exclusions>-->
+            <!--            <exclusions>-->
+            <!--                <exclusion>-->
+            <!--                    <artifactId>flexmark</artifactId>-->
+            <!--                    <groupId>com.vladsch.flexmark</groupId>-->
+            <!--                </exclusion>-->
+            <!--                <exclusion>-->
+            <!--                    <artifactId>flexmark-ext-tables</artifactId>-->
+            <!--                    <groupId>com.vladsch.flexmark</groupId>-->
+            <!--                </exclusion>-->
+            <!--            </exclusions>-->
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-quartz</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.mybatis.caches</groupId>-->
-<!--            <artifactId>mybatis-ehcache</artifactId>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.mybatis.caches</groupId>-->
+        <!--            <artifactId>mybatis-ehcache</artifactId>-->
+        <!--        </dependency>-->
 
     </dependencies>
     <build>
@@ -168,7 +176,7 @@
                     <exclude>**/*.woff</exclude>
                     <exclude>**/*.woff2</exclude>
                     <exclude>**/*.ttf</exclude>
-<!--                    <exclude>**/*.svg</exclude>-->
+                    <!--                    <exclude>**/*.svg</exclude>-->
                 </excludes>
             </resource>
             <resource>
@@ -178,7 +186,7 @@
                     <include>**/*.woff</include>
                     <include>**/*.woff2</include>
                     <include>**/*.ttf</include>
-<!--                    <include>**/*.svg</include>-->
+                    <!--                    <include>**/*.svg</include>-->
                 </includes>
             </resource>
         </resources>

+ 20 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartition.java

@@ -0,0 +1,20 @@
+package com.jay.monitor.data.server.componts;
+
+import org.elasticsearch.action.bulk.BulkResponse;
+import org.zxp.esclientrhl.repository.ElasticsearchTemplate;
+import org.zxp.esclientrhl.repository.PageList;
+import org.zxp.esclientrhl.repository.Sort;
+
+import java.util.List;
+
+public interface ElasticSearchPartition<T, M> extends ElasticsearchTemplate<T, M> {
+
+    public boolean savePartition(T indexEntity, String indexName, String routes) throws Exception;
+
+    BulkResponse[] saveBatchPartition(List<T> indexList, String indexName) throws Exception;
+
+    public List<T> searchPartition(String indexName, T t) throws Exception;
+
+    public PageList<T> searchPartitionPage(String indexName, T t, int pageNo, int pageSize, Sort.Order[] sort)
+        throws Exception;
+}

+ 214 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartitionImpl.java

@@ -0,0 +1,214 @@
+package com.jay.monitor.data.server.componts;
+
+import com.jay.monitor.data.server.utils.DataUtils;
+import com.jay.monitor.data.server.utils.ESUtils;
+import org.elasticsearch.action.DocWriteResponse;
+import org.elasticsearch.action.bulk.BulkRequest;
+import org.elasticsearch.action.bulk.BulkResponse;
+import org.elasticsearch.action.index.IndexRequest;
+import org.elasticsearch.action.index.IndexResponse;
+import org.elasticsearch.action.search.SearchRequest;
+import org.elasticsearch.action.search.SearchResponse;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.elasticsearch.common.xcontent.XContentType;
+import org.elasticsearch.index.query.QueryBuilder;
+import org.elasticsearch.search.SearchHit;
+import org.elasticsearch.search.SearchHits;
+import org.elasticsearch.search.builder.SearchSourceBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.zxp.esclientrhl.annotation.ESID;
+import org.zxp.esclientrhl.index.ElasticsearchIndex;
+import org.zxp.esclientrhl.repository.*;
+import org.zxp.esclientrhl.util.*;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 支持动态索引类型的ES实现类
+ *
+ * @param <T> document对象
+ * @param <M> 主键
+ */
+public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<T, M>
+    implements ElasticSearchPartition<T, M> {
+
+    private Logger logger = LoggerFactory.getLogger(ElasticSearchPartitionImpl.class);
+
+    private static Map<Class, String> classIDMap = new ConcurrentHashMap();
+
+    @Autowired
+    private RestHighLevelClient client;
+
+    @Autowired
+    private ElasticsearchIndex elasticsearchIndex;
+
+    @Override
+    public PageList<T> searchPartitionPage(String indexName, T t, int pageNo, int pageSize, Sort.Order[] sort)
+        throws Exception {
+        QueryBuilder queryBuilder = ESUtils.beanToQueryBuilder(t, false);
+        Attach attach = builderAttach(pageNo, pageSize, sort);
+        PageList<T> pageList = super.search(queryBuilder, attach, (Class<T>)t.getClass(), indexName);
+        return pageList;
+    }
+
+    @Override
+    public List<T> searchPartition(String indexName, T t) throws Exception {
+        QueryBuilder queryBuilder = ESUtils.beanToQueryBuilder(t, false);
+        return super.search(queryBuilder, (Class<T>)t.getClass(),indexName);
+    }
+
+    private Attach builderAttach(int pageNo, int pageSize, Sort.Order[] ordered) {
+        Attach attach = new Attach();
+        PageSortHighLight pageSortHighLight = new PageSortHighLight(pageNo, pageSize);
+        if (ordered != null) {
+            pageSortHighLight.setSort(new Sort(ordered));
+        }
+        attach.setPageSortHighLight(pageSortHighLight);
+        return attach;
+    }
+
+    @Override
+    public List<T> search(QueryBuilder queryBuilder, Class<T> clazz, String... indexs) throws Exception {
+        MetaData metaData = IndexTools.getIndexType(clazz);
+        List<T> list = new ArrayList();
+        SearchRequest searchRequest = new SearchRequest(indexs);
+        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
+        searchSourceBuilder.query(queryBuilder);
+        searchSourceBuilder.from(0);
+        searchSourceBuilder.size(Constant.DEFALT_PAGE_SIZE);
+        searchRequest.source(searchSourceBuilder);
+        if (metaData.isPrintLog()) {
+            this.logger.info(searchSourceBuilder.toString());
+        }
+
+        SearchResponse searchResponse = this.client.search(searchRequest, RequestOptions.DEFAULT);
+        SearchHits hits = searchResponse.getHits();
+        SearchHit[] searchHits = hits.getHits();
+        SearchHit[] var12 = searchHits;
+        int var13 = searchHits.length;
+
+        for (int var14 = 0; var14 < var13; ++var14) {
+            SearchHit hit = var12[var14];
+            T t = JsonUtils.string2Obj(hit.getSourceAsString(), clazz);
+            this.correctID(clazz, t, hit.getId());
+            list.add(t);
+        }
+
+        return list;
+    }
+
+    private void correctID(Class clazz, T t, String _id) {
+        try {
+            if (StringUtils.isEmpty(_id)) {
+                return;
+            }
+
+            if (classIDMap.containsKey(clazz)) {
+                Field field = clazz.getDeclaredField((String)classIDMap.get(clazz));
+                field.setAccessible(true);
+                if (field.get(t) == null) {
+                    field.set(t, _id);
+                }
+
+                return;
+            }
+
+            for (int i = 0; i < clazz.getDeclaredFields().length; ++i) {
+                Field field = clazz.getDeclaredFields()[i];
+                field.setAccessible(true);
+                if (field.getAnnotation(ESID.class) != null) {
+                    classIDMap.put(clazz, field.getName());
+                    if (field.get(t) == null) {
+                        field.set(t, _id);
+                    }
+                }
+            }
+        } catch (Exception var6) {
+            this.logger.error("correctID error!", var6);
+        }
+
+    }
+
+    @Override
+    public boolean savePartition(T indexEntity, String indexName, String routing) throws Exception {
+        MetaData metaData = IndexTools.getIndexType(indexEntity.getClass());
+        String indexname = DataUtils.getDefaultValue(indexName, metaData.getIndexname());
+        String indextype = DataUtils.getDefaultValue(metaData.getIndextype(), "");
+
+        String id = Tools.getESId(indexEntity);
+        IndexRequest indexRequest = null;
+        if (StringUtils.isEmpty(id)) {
+            indexRequest = new IndexRequest(indexname, indextype);
+        } else {
+            indexRequest = new IndexRequest(indexname, indextype, id);
+        }
+
+        String source = JsonUtils.obj2String(indexEntity);
+        indexRequest.source(source, XContentType.JSON);
+        if (!StringUtils.isEmpty(routing)) {
+            indexRequest.routing(routing);
+        }
+
+        IndexResponse indexResponse = null;
+        indexResponse = this.client.index(indexRequest, RequestOptions.DEFAULT);
+        if (indexResponse.getResult() == DocWriteResponse.Result.CREATED) {
+            this.logger.info("INDEX CREATE SUCCESS");
+            this.elasticsearchIndex.rollover(indexEntity.getClass(), true);
+        } else {
+            if (indexResponse.getResult() != DocWriteResponse.Result.UPDATED) {
+                return false;
+            }
+            this.logger.info("INDEX UPDATE SUCCESS");
+        }
+        return true;
+    }
+
+    @Override
+    public boolean save(T t, String routing) throws Exception {
+        return savePartition(t, null, null);
+    }
+
+    @Override
+    public BulkResponse[] saveBatchPartition(List<T> list, String indexName) throws Exception {
+        if (list != null && list.size() != 0) {
+            T t = list.get(0);
+            MetaData metaData = IndexTools.getIndexType(t.getClass());
+            String indexname = DataUtils.getDefaultValue(indexName, metaData.getIndexname());
+            String indextype = DataUtils.getDefaultValue(metaData.getIndextype(), "");
+            List<List<T>> lists = Tools.splitList(list, true);
+            BulkResponse[] bulkResponses = new BulkResponse[lists.size()];
+
+            for (int i = 0; i < lists.size(); ++i) {
+                bulkResponses[i] = this.savePart((List)lists.get(i), indexname, indextype);
+            }
+            return bulkResponses;
+        } else {
+            return null;
+        }
+    }
+
+    private BulkResponse savePart(List<T> list, String indexname, String indextype) throws Exception {
+        BulkRequest rrr = new BulkRequest();
+        Class clazz = null;
+
+        for (int i = 0; i < list.size(); ++i) {
+            T tt = list.get(i);
+            clazz = tt.getClass();
+            String id = Tools.getESId(tt);
+            String sourceJsonStr = JsonUtils.obj2String(tt);
+            rrr.add((new IndexRequest(indexname, indextype, id)).source(sourceJsonStr, XContentType.JSON));
+        }
+
+        BulkResponse bulkResponse = this.client.bulk(rrr, RequestOptions.DEFAULT);
+        this.elasticsearchIndex.rollover(clazz, true);
+        return bulkResponse;
+    }
+}

+ 2 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/BeanConfig.java

@@ -19,6 +19,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
 import java.util.List;
@@ -37,6 +38,7 @@ import java.util.List;
 //        @ComponentScan.Filter(type = FilterType.ANNOTATION, value = {Controller.class, ControllerAdvice.class})
 //})
 @EnableConfigurationProperties({MonitorProperties.class, AlertProperties.class})
+@ComponentScan
 public class BeanConfig {
 
     private Logger logger = LoggerFactory.getLogger(getClass());

+ 10 - 2
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/props/MonitorProperties.java

@@ -16,14 +16,14 @@ import java.util.Map;
 @ConfigurationProperties(prefix = "spring.monitor-server")
 public class MonitorProperties {
 
+
+    private StoreType storeType;
     /**
      * 存储配置规则
      * key -> {@link com.jay.monitor.data.server.enums.StoreType}
      */
     private Map<StoreType, StoreInfo> storeInfo = new HashMap<>();
 
-
-
     public Map<StoreType, StoreInfo> getStoreInfo() {
         return storeInfo;
     }
@@ -32,6 +32,14 @@ public class MonitorProperties {
         this.storeInfo = storeInfo;
     }
 
+    public StoreType getStoreType() {
+        return storeType;
+    }
+
+    public void setStoreType(StoreType storeType) {
+        this.storeType = storeType;
+    }
+
     public static class StoreInfo {
 
         /**

+ 83 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/TraceConsoleController.java

@@ -0,0 +1,83 @@
+package com.jay.monitor.data.server.controllers;//package com.jay.monitor.data.server.controllers;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.response.ListResponseModel;
+import com.jay.monitor.data.core.model.response.PageResponseModel;
+import com.jay.monitor.data.core.utils.ResponseUtils;
+import com.jay.monitor.data.server.models.entity.JayMonitorMq;
+import com.jay.monitor.data.server.models.request.trace.MQRequest;
+import com.jay.monitor.data.server.models.request.trace.URLRequest;
+import com.jay.monitor.data.server.models.response.trace.URLTraceResponse;
+import com.jay.monitor.data.server.store.ConfigStoreManager;
+import com.jay.monitor.data.server.store.TranceJsonManager;
+import com.jay.monitor.data.server.utils.DataUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+//import com.jay.monitor.data.server.services.impl.DefaultBackstageRouteService;
+
+/**
+ * 后台路由管理
+ *
+ * @author liukx
+ * @Date 2019-02-28 15:16
+ */
+@Controller
+@RequestMapping(value = "/trace")
+public class TraceConsoleController {
+
+    final static private String page = "/trace/";
+
+    @Autowired
+    private ConfigStoreManager configStoreManager;
+
+    @Autowired
+    private TranceJsonManager tranceJsonManager;
+
+    @RequestMapping(value = "/mqList.html", method = RequestMethod.GET)
+    public String list(Model model) throws Exception {
+        model.addAttribute("catUrl", configStoreManager.getLogMonitorUrl());
+        return page + "mqList";
+    }
+
+    @RequestMapping(value = "/urlList.html", method = RequestMethod.GET)
+    public String urlList(Model model) throws Exception {
+        model.addAttribute("catUrl", configStoreManager.getLogMonitorUrl());
+        return page + "urlList";
+    }
+
+    @RequestMapping(value = "/mqNodeId", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public ListResponseModel<JayMonitorMq> findMQList(@RequestBody MQRequest request) throws Exception {
+        String date = DataUtils.parseDayString(request.getDate());
+        // 将参数对应的全部匹配赋值
+        PageResponseModel pageResponseModel = tranceJsonManager
+            .searchDataByList(MsgTypeEnums.MQ, date, request.getPageNo(), request.getPageSize(), request);
+        return ResponseUtils.trueList(pageResponseModel.getPageModel().getResultSet());
+    }
+
+    @RequestMapping(value = "/mqList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public PageResponseModel mqNodeId(@RequestBody MQRequest request) throws Exception {
+        String date = DataUtils.parseDayString(request.getDate());
+        // 将参数对应的全部匹配赋值
+        PageResponseModel pageResponseModel = tranceJsonManager
+            .searchDataByList(MsgTypeEnums.MQ, date, request.getPageNo(), request.getPageSize(), request);
+        return pageResponseModel;
+    }
+
+    @RequestMapping(value = "/urlList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public PageResponseModel<URLTraceResponse> findUrlList(@RequestBody URLRequest request) throws Exception {
+        String date = DataUtils.parseDayString(request.getDate());
+        // 将参数对应的全部匹配赋值
+        PageResponseModel pageResponseModel = tranceJsonManager
+            .searchDataByList(MsgTypeEnums.URL, date, request.getPageNo(), request.getPageSize(), request);
+        return pageResponseModel;
+    }
+}

+ 125 - 121
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/TraceController.java

@@ -1,129 +1,133 @@
-package com.jay.monitor.data.server.controllers;//package com.jay.monitor.data.server.controllers;
-
-import com.jay.monitor.data.core.model.response.ListResponseModel;
-import com.jay.monitor.data.core.model.response.PageInfoModel;
-import com.jay.monitor.data.core.model.response.PageResponseModel;
-import com.jay.monitor.data.core.utils.ResponseUtils;
-import com.jay.monitor.data.server.models.entity.JayMonitorMq;
-import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
-import com.jay.monitor.data.server.models.request.trace.MQRequest;
-import com.jay.monitor.data.server.models.request.trace.URLRequest;
-import com.jay.monitor.data.server.store.ConfigStoreManager;
-import com.jay.monitor.data.server.store.mysql.MysqlMQStoreProcess;
-import com.jay.monitor.data.server.store.mysql.MysqlUrlStoreProcess;
-import com.jay.monitor.data.server.utils.DataUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import java.util.List;
-
-//import com.jay.monitor.data.server.services.impl.DefaultBackstageRouteService;
-
-/**
- * 后台路由管理
- *
- * @author liukx
- * @Date 2019-02-28 15:16
- */
-@Controller
-@RequestMapping(value = "/trace")
-public class TraceController {
-
-    final static private String page = "/trace/";
-
-    @Autowired
-    private ConfigStoreManager configStoreManager;
-
-    @Autowired
-    private MysqlMQStoreProcess mqStoreProcess;
-
-    @Autowired
-    private MysqlUrlStoreProcess urlStoreProcess;
-
-    @RequestMapping(value = "/mqList.html", method = RequestMethod.GET)
-    public String list(Model model) throws Exception {
-        model.addAttribute("catUrl", configStoreManager.getLogMonitorUrl());
-        return page + "mqList";
-    }
-
-    @RequestMapping(value = "/urlList.html", method = RequestMethod.GET)
-    public String urlList(Model model) throws Exception {
-        model.addAttribute("catUrl", configStoreManager.getLogMonitorUrl());
-        return page + "urlList";
-    }
-
-    @RequestMapping(value = "/mqNodeId", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public ListResponseModel<JayMonitorMq> findMQList(@RequestBody MQRequest request) throws Exception {
-        String date = DataUtils.parseDayString(request.getDate());
-        // 将参数对应的全部匹配赋值
-        List<JayMonitorMq> mqList = mqStoreProcess.searchDataByList(date, request.getPageSize(), request);
-        return ResponseUtils.trueList(mqList);
-    }
-
-    @RequestMapping(value = "/mqList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public PageResponseModel<JayMonitorMq> mqNodeId(@RequestBody MQRequest request) throws Exception {
-        String date = DataUtils.parseDayString(request.getDate());
-        // 将参数对应的全部匹配赋值
-        List<JayMonitorMq> mqList = mqStoreProcess.searchDataByList(date, request.getPageSize(), request);
-        PageResponseModel<JayMonitorMq> pageResponseModel = new PageResponseModel<JayMonitorMq>();
-        PageInfoModel pageInfoModel = new PageInfoModel();
-        pageInfoModel.setRowTotal(20);
-        pageInfoModel.setPageSize(1);
-        pageInfoModel.setResultSet(mqList);
-        pageResponseModel.setPageModel(pageInfoModel);
-        return pageResponseModel;
-    }
-
-    @RequestMapping(value = "/urlList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public PageResponseModel<JayMonitorUrl> findUrlList(@RequestBody URLRequest request) throws Exception {
-        String date = DataUtils.parseDayString(request.getDate());
-        // 将参数对应的全部匹配赋值
-        List<JayMonitorUrl> mqList = urlStoreProcess.searchDataByList(date, request.getPageSize(), request);
-        PageResponseModel<JayMonitorUrl> pageResponseModel = new PageResponseModel<JayMonitorUrl>();
-        PageInfoModel pageInfoModel = new PageInfoModel();
-        pageInfoModel.setRowTotal(20);
-        pageInfoModel.setPageSize(1);
-        pageInfoModel.setResultSet(mqList);
-        pageResponseModel.setPageModel(pageInfoModel);
-        return pageResponseModel;
-    }
-
-//    @RequestMapping(value = "/getObjectById", method = RequestMethod.GET)
+//package com.jay.monitor.data.server.controllers;//package com.jay.monitor.data.server.controllers;
+//
+//import com.jay.monitor.data.core.model.response.ListResponseModel;
+//import com.jay.monitor.data.core.model.response.PageInfoModel;
+//import com.jay.monitor.data.core.model.response.PageResponseModel;
+//import com.jay.monitor.data.core.utils.ResponseUtils;
+//import com.jay.monitor.data.server.models.entity.JayMonitorMq;
+//import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
+//import com.jay.monitor.data.server.models.request.trace.MQRequest;
+//import com.jay.monitor.data.server.models.request.trace.URLRequest;
+//import com.jay.monitor.data.server.store.ConfigStoreManager;
+//import com.jay.monitor.data.server.store.StoreDataManager;
+//import com.jay.monitor.data.server.store.mysql.MysqlMQStoreProcess;
+//import com.jay.monitor.data.server.store.mysql.MysqlUrlStoreProcess;
+//import com.jay.monitor.data.server.utils.DataUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Controller;
+//import org.springframework.ui.Model;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestMethod;
+//import org.springframework.web.bind.annotation.ResponseBody;
+//
+//import java.util.List;
+//
+////import com.jay.monitor.data.server.services.impl.DefaultBackstageRouteService;
+//
+///**
+// * 后台路由管理
+// *
+// * @author liukx
+// * @Date 2019-02-28 15:16
+// */
+//@Controller
+//@RequestMapping(value = "/trace")
+//public class TraceController {
+//
+//    final static private String page = "/trace/";
+//
+//    @Autowired
+//    private ConfigStoreManager configStoreManager;
+//
+//    @Autowired
+//    private MysqlMQStoreProcess mqStoreProcess;
+//
+//    @Autowired
+//    private MysqlUrlStoreProcess urlStoreProcess;
+//
+//    @Autowired
+//    private StoreDataManager storeDataManager;
+//
+//    @RequestMapping(value = "/mqList.html", method = RequestMethod.GET)
+//    public String list(Model model) throws Exception {
+//        model.addAttribute("catUrl", configStoreManager.getLogMonitorUrl());
+//        return page + "mqList";
+//    }
+//
+//    @RequestMapping(value = "/urlList.html", method = RequestMethod.GET)
+//    public String urlList(Model model) throws Exception {
+//        model.addAttribute("catUrl", configStoreManager.getLogMonitorUrl());
+//        return page + "urlList";
+//    }
+//
+//    @RequestMapping(value = "/mqNodeId", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
 //    @ResponseBody
-//    public ObjectResponseModel<BackstageRoute> getObjectById(@RequestParam("id") Integer id) throws Exception {
-//        BackstageRoute result = routesService.getById(id + "");
-//        ObjectResponseModel<BackstageRoute> model = new ObjectResponseModel<BackstageRoute>();
-//        model.setSingle(result);
-//        return model;
+//    public ListResponseModel<JayMonitorMq> findMQList(@RequestBody MQRequest request) throws Exception {
+//        String date = DataUtils.parseDayString(request.getDate());
+//        // 将参数对应的全部匹配赋值
+//        List<JayMonitorMq> mqList = mqStoreProcess.searchDataByList(date, request.getPageSize(), request);
+//        return ResponseUtils.trueList(mqList);
 //    }
 //
-//    @RequestMapping(value = "/getObjectByList", method = RequestMethod.POST)
+//    @RequestMapping(value = "/mqList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
 //    @ResponseBody
-//    public ListResponseModel<BackstageRoute> getObjectByList(@RequestBody BackstageRoute request) throws Exception {
-//        QueryWrapper queryWrapper = new QueryWrapper(request);
-//        List<BackstageRoute> result = routesService.listObjs(queryWrapper);
-//        ListResponseModel<BackstageRoute> model = new ListResponseModel<BackstageRoute>();
-//        model.setList(result);
-//        return model;
+//    public PageResponseModel<JayMonitorMq> mqNodeId(@RequestBody MQRequest request) throws Exception {
+//        String date = DataUtils.parseDayString(request.getDate());
+//        // 将参数对应的全部匹配赋值
+//        List<JayMonitorMq> mqList = mqStoreProcess.searchDataByList(date, request.getPageSize(), request);
+//        PageResponseModel<JayMonitorMq> pageResponseModel = new PageResponseModel<JayMonitorMq>();
+//        PageInfoModel pageInfoModel = new PageInfoModel();
+//        pageInfoModel.setRowTotal(20);
+//        pageInfoModel.setPageSize(1);
+//        pageInfoModel.setResultSet(mqList);
+//        pageResponseModel.setPageModel(pageInfoModel);
+//        return pageResponseModel;
 //    }
 //
-//    @RequestMapping(value = "/update", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
+//    @RequestMapping(value = "/urlList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
 //    @ResponseBody
-//    public ResponseCommonModel updateBackstageRouteInfo(@RequestBody BackstageRoute request) throws Exception {
-//        request.setUpdated(new Date());
-//        boolean b = routesService.updateById(request);
-//        ResponseCommonModel response = new ResponseCommonModel();
-//        if (b) {
-//            response.setSuccess(false);
-//        }
-//        return response;
+//    public PageResponseModel<JayMonitorUrl> findUrlList(@RequestBody URLRequest request) throws Exception {
+//        String date = DataUtils.parseDayString(request.getDate());
+//        // 将参数对应的全部匹配赋值
+//        List<JayMonitorUrl> mqList = urlStoreProcess.searchDataByList(date, request.getPageSize(), request);
+//        PageResponseModel<JayMonitorUrl> pageResponseModel = new PageResponseModel<JayMonitorUrl>();
+//        PageInfoModel pageInfoModel = new PageInfoModel();
+//        pageInfoModel.setRowTotal(20);
+//        pageInfoModel.setPageSize(1);
+//        pageInfoModel.setResultSet(mqList);
+//        pageResponseModel.setPageModel(pageInfoModel);
+//        return pageResponseModel;
 //    }
-}
+//
+//    //    @RequestMapping(value = "/getObjectById", method = RequestMethod.GET)
+//    //    @ResponseBody
+//    //    public ObjectResponseModel<BackstageRoute> getObjectById(@RequestParam("id") Integer id) throws Exception {
+//    //        BackstageRoute result = routesService.getById(id + "");
+//    //        ObjectResponseModel<BackstageRoute> model = new ObjectResponseModel<BackstageRoute>();
+//    //        model.setSingle(result);
+//    //        return model;
+//    //    }
+//    //
+//    //    @RequestMapping(value = "/getObjectByList", method = RequestMethod.POST)
+//    //    @ResponseBody
+//    //    public ListResponseModel<BackstageRoute> getObjectByList(@RequestBody BackstageRoute request) throws Exception {
+//    //        QueryWrapper queryWrapper = new QueryWrapper(request);
+//    //        List<BackstageRoute> result = routesService.listObjs(queryWrapper);
+//    //        ListResponseModel<BackstageRoute> model = new ListResponseModel<BackstageRoute>();
+//    //        model.setList(result);
+//    //        return model;
+//    //    }
+//    //
+//    //    @RequestMapping(value = "/update", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
+//    //    @ResponseBody
+//    //    public ResponseCommonModel updateBackstageRouteInfo(@RequestBody BackstageRoute request) throws Exception {
+//    //        request.setUpdated(new Date());
+//    //        boolean b = routesService.updateById(request);
+//    //        ResponseCommonModel response = new ResponseCommonModel();
+//    //        if (b) {
+//    //            response.setSuccess(false);
+//    //        }
+//    //        return response;
+//    //    }
+//}

+ 2 - 1
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/daos/PartitionOperation.java

@@ -16,6 +16,7 @@ public interface PartitionOperation<T> {
 
     public T selectPartitionById(@Param("date") String date, @Param("id") Integer id);
 
-    public List<T> selectPartitionByList(@Param("date") String date, @Param("pageSize") Integer pageSize, @Param("record") T record);
+    public List<T> selectPartitionByList(@Param("date") String date, @Param("pageSize") Integer pageSize, @Param("record") T record)
+        throws Exception;
 
 }

+ 1 - 1
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/StoreType.java

@@ -7,5 +7,5 @@ package com.jay.monitor.data.server.enums;
  * @Date 2020/10/29 13:31
  */
 public enum StoreType {
-    MYSQL,LOCAL
+    MYSQL,ES,LOCAL
 }

+ 9 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorMQIndex.java

@@ -0,0 +1,9 @@
+package com.jay.monitor.data.server.models.entity.es;
+
+import com.jay.monitor.data.core.model.serializable.MQDataDTO;
+import org.zxp.esclientrhl.annotation.ESMetaData;
+
+@ESMetaData(indexName = "jay_monitor_mq", indexType = "mq", number_of_shards = 5, number_of_replicas = 0,printLog = true)
+public class JayMonitorMQIndex extends MQDataDTO {
+
+}

+ 9 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorSQLIndex.java

@@ -0,0 +1,9 @@
+package com.jay.monitor.data.server.models.entity.es;
+
+import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
+import org.zxp.esclientrhl.annotation.ESMetaData;
+
+@ESMetaData(indexName = "jay_monitor_sql", indexType = "sql", number_of_shards = 5, number_of_replicas = 0)
+public class JayMonitorSQLIndex extends SQLMonitorDTO {
+
+}

+ 10 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorUrlIndex.java

@@ -0,0 +1,10 @@
+package com.jay.monitor.data.server.models.entity.es;
+
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
+import org.zxp.esclientrhl.annotation.ESMetaData;
+
+@ESMetaData(indexName = "jay_monitor_url", indexType = "mq", number_of_shards = 5, number_of_replicas = 0)
+public class JayMonitorUrlIndex extends URLDataDTO {
+
+}

+ 227 - 13
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/MQRequest.java

@@ -1,7 +1,5 @@
 package com.jay.monitor.data.server.models.request.trace;
 
-import com.jay.monitor.data.server.models.entity.JayMonitorMq;
-
 import java.util.Date;
 
 /**
@@ -10,25 +8,241 @@ import java.util.Date;
  * @Author liukaixiong
  * @Date 2021/1/12 16:46
  */
-public class MQRequest extends JayMonitorMq {
+public class MQRequest extends PageRequest {
+
+    /**
+     * 主键名称
+     */
+    private Integer id;
+
+    /**
+     * 应用名称
+     */
+    private String applicationName;
+
+    /**
+     * 应用地址
+     */
+    private String applicationIp;
+
+    /**
+     * mq类型
+     */
+    private String mqType;
+
+    /**
+     * 执行类型  producer/consumer
+     */
+    private String invokeType;
+
+    /**
+     * 订阅主题
+     */
+    private String topic;
+
+    /**
+     * 分区名称
+     */
+    private String partitionName;
+
+    /**
+     * 消息编号
+     */
+    private String msgId;
+
+    /**
+     * 应用监控组
+     */
+    private String dataGroupName;
+
+    /**
+     * 应用监控key
+     */
+    private String dataGroupKey;
+
+    /**
+     * 数据编号
+     */
+    private String dataId;
+
+    /**
+     * 根日志编号
+     */
+    private String rootLogId;
+
+    /**
+     * 上级日志编号
+     */
+    private String parentLogId;
+
+    /**
+     * 日志编号
+     */
+    private String logId;
+
+    /**
+     * 状态1:正常消息 -1异常消息
+     */
+    private Integer status;
+
+    /**
+     * 请求时长
+     */
+    private Long requestTime;
+
+    /**
+     * 数据来源时间
+     */
+    private Date sourceTime;
+
+    /**
+     * 时间时间
+     */
+    private Date createdTime;
+
+    public Long getRequestTime() {
+        return requestTime;
+    }
+
+    public void setRequestTime(Long requestTime) {
+        this.requestTime = requestTime;
+    }
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationIp() {
+        return applicationIp;
+    }
+
+    public void setApplicationIp(String applicationIp) {
+        this.applicationIp = applicationIp;
+    }
+
+    public String getMqType() {
+        return mqType;
+    }
+
+    public void setMqType(String mqType) {
+        this.mqType = mqType;
+    }
+
+    public String getInvokeType() {
+        return invokeType;
+    }
+
+    public void setInvokeType(String invokeType) {
+        this.invokeType = invokeType;
+    }
 
-    private Date date;
+    public String getTopic() {
+        return topic;
+    }
+
+    public void setTopic(String topic) {
+        this.topic = topic;
+    }
 
-    private Integer pageSize = 10;
+    public String getPartitionName() {
+        return partitionName;
+    }
+
+    public void setPartitionName(String partitionName) {
+        this.partitionName = partitionName;
+    }
+
+    public String getMsgId() {
+        return msgId;
+    }
+
+    public void setMsgId(String msgId) {
+        this.msgId = msgId;
+    }
+
+    public String getDataGroupName() {
+        return dataGroupName;
+    }
+
+    public void setDataGroupName(String dataGroupName) {
+        this.dataGroupName = dataGroupName;
+    }
+
+    public String getDataGroupKey() {
+        return dataGroupKey;
+    }
+
+    public void setDataGroupKey(String dataGroupKey) {
+        this.dataGroupKey = dataGroupKey;
+    }
+
+    public String getDataId() {
+        return dataId;
+    }
+
+    public void setDataId(String dataId) {
+        this.dataId = dataId;
+    }
+
+    public String getRootLogId() {
+        return rootLogId;
+    }
+
+    public void setRootLogId(String rootLogId) {
+        this.rootLogId = rootLogId;
+    }
+
+    public String getParentLogId() {
+        return parentLogId;
+    }
+
+    public void setParentLogId(String parentLogId) {
+        this.parentLogId = parentLogId;
+    }
+
+    public String getLogId() {
+        return logId;
+    }
+
+    public void setLogId(String logId) {
+        this.logId = logId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
 
-    public Integer getPageSize() {
-        return pageSize;
+    public Date getSourceTime() {
+        return sourceTime;
     }
 
-    public void setPageSize(Integer pageSize) {
-        this.pageSize = pageSize;
+    public void setSourceTime(Date sourceTime) {
+        this.sourceTime = sourceTime;
     }
 
-    public Date getDate() {
-        return date;
+    public Date getCreatedTime() {
+        return createdTime;
     }
 
-    public void setDate(Date date) {
-        this.date = date;
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
     }
 }

+ 24 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PageRequest.java

@@ -0,0 +1,24 @@
+package com.jay.monitor.data.server.models.request.trace;
+
+public class PageRequest extends PartitionRequest {
+
+    private Integer pageSize = 10;
+
+    private Integer pageNo = 1;
+
+    public Integer getPageNo() {
+        return pageNo;
+    }
+
+    public void setPageNo(Integer pageNo) {
+        this.pageNo = pageNo;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+}

+ 16 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PartitionRequest.java

@@ -0,0 +1,16 @@
+package com.jay.monitor.data.server.models.request.trace;
+
+import java.util.Date;
+
+public class PartitionRequest {
+
+    private Date date;
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+}

+ 248 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/SQLRequest.java

@@ -0,0 +1,248 @@
+package com.jay.monitor.data.server.models.request.trace;
+
+import java.util.Date;
+
+/**
+ * @Module mq请求参数
+ * @Description mq请求参数
+ * @Author liukaixiong
+ * @Date 2021/1/12 16:46
+ */
+public class SQLRequest extends PageRequest {
+
+    /**
+     * 主键名称
+     */
+    private Integer id;
+
+    /**
+     * 应用名称
+     */
+    private String applicationName;
+
+    /**
+     * 应用地址
+     */
+    private String applicationIp;
+
+    /**
+     * mq类型
+     */
+    private String mqType;
+
+    /**
+     * 执行类型  producer/consumer
+     */
+    private String invokeType;
+
+    /**
+     * 订阅主题
+     */
+    private String topic;
+
+    /**
+     * 分区名称
+     */
+    private String partitionName;
+
+    /**
+     * 消息编号
+     */
+    private String msgId;
+
+    /**
+     * 应用监控组
+     */
+    private String dataGroupName;
+
+    /**
+     * 应用监控key
+     */
+    private String dataGroupKey;
+
+    /**
+     * 数据编号
+     */
+    private String dataId;
+
+    /**
+     * 根日志编号
+     */
+    private String rootLogId;
+
+    /**
+     * 上级日志编号
+     */
+    private String parentLogId;
+
+    /**
+     * 日志编号
+     */
+    private String logId;
+
+    /**
+     * 状态1:正常消息 -1异常消息
+     */
+    private Integer status;
+
+    /**
+     * 请求时长
+     */
+    private Long requestTime;
+
+    /**
+     * 数据来源时间
+     */
+    private Date sourceTime;
+
+    /**
+     * 时间时间
+     */
+    private Date createdTime;
+
+    public Long getRequestTime() {
+        return requestTime;
+    }
+
+    public void setRequestTime(Long requestTime) {
+        this.requestTime = requestTime;
+    }
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationIp() {
+        return applicationIp;
+    }
+
+    public void setApplicationIp(String applicationIp) {
+        this.applicationIp = applicationIp;
+    }
+
+    public String getMqType() {
+        return mqType;
+    }
+
+    public void setMqType(String mqType) {
+        this.mqType = mqType;
+    }
+
+    public String getInvokeType() {
+        return invokeType;
+    }
+
+    public void setInvokeType(String invokeType) {
+        this.invokeType = invokeType;
+    }
+
+    public String getTopic() {
+        return topic;
+    }
+
+    public void setTopic(String topic) {
+        this.topic = topic;
+    }
+
+    public String getPartitionName() {
+        return partitionName;
+    }
+
+    public void setPartitionName(String partitionName) {
+        this.partitionName = partitionName;
+    }
+
+    public String getMsgId() {
+        return msgId;
+    }
+
+    public void setMsgId(String msgId) {
+        this.msgId = msgId;
+    }
+
+    public String getDataGroupName() {
+        return dataGroupName;
+    }
+
+    public void setDataGroupName(String dataGroupName) {
+        this.dataGroupName = dataGroupName;
+    }
+
+    public String getDataGroupKey() {
+        return dataGroupKey;
+    }
+
+    public void setDataGroupKey(String dataGroupKey) {
+        this.dataGroupKey = dataGroupKey;
+    }
+
+    public String getDataId() {
+        return dataId;
+    }
+
+    public void setDataId(String dataId) {
+        this.dataId = dataId;
+    }
+
+    public String getRootLogId() {
+        return rootLogId;
+    }
+
+    public void setRootLogId(String rootLogId) {
+        this.rootLogId = rootLogId;
+    }
+
+    public String getParentLogId() {
+        return parentLogId;
+    }
+
+    public void setParentLogId(String parentLogId) {
+        this.parentLogId = parentLogId;
+    }
+
+    public String getLogId() {
+        return logId;
+    }
+
+    public void setLogId(String logId) {
+        this.logId = logId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getSourceTime() {
+        return sourceTime;
+    }
+
+    public void setSourceTime(Date sourceTime) {
+        this.sourceTime = sourceTime;
+    }
+
+    public Date getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
+    }
+}

+ 169 - 12
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/URLRequest.java

@@ -1,6 +1,7 @@
 package com.jay.monitor.data.server.models.request.trace;
 
-import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 
 import java.util.Date;
 
@@ -10,25 +11,181 @@ import java.util.Date;
  * @Author liukaixiong
  * @Date 2021/1/12 18:29
  */
-public class URLRequest extends JayMonitorUrl {
+public class URLRequest extends PageRequest {
 
-    private Date date;
+    /**
+     * 主键名称
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
 
-    private Integer pageSize = 10;
+    /**
+     * 应用名称
+     */
+    private String applicationName;
 
-    public Integer getPageSize() {
-        return pageSize;
+    /**
+     * 应用地址
+     */
+    private String applicationIp;
+
+    /**
+     * 请求路径
+     */
+    private String url;
+
+    /**
+     * 用户编号
+     */
+    private String userId;
+
+    /**
+     * 客户端ip
+     */
+    private String clientIp;
+
+    /**
+     * 应用监控组
+     */
+    private String dataGroupName;
+
+    /**
+     * 应用监控key
+     */
+    private String dataGroupKey;
+
+    /**
+     * 数据编号
+     */
+    private String dataId;
+
+    /**
+     * 状态: 客户端返回的状态码
+     */
+    private Integer status;
+
+    /**
+     * 日志编号
+     */
+    private String logId;
+
+    /**
+     * 请求时长
+     */
+    private Integer requestTime;
+
+    /**
+     * 创建时间
+     */
+    private Date createdTime;
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationIp() {
+        return applicationIp;
+    }
+
+    public void setApplicationIp(String applicationIp) {
+        this.applicationIp = applicationIp;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getClientIp() {
+        return clientIp;
+    }
+
+    public void setClientIp(String clientIp) {
+        this.clientIp = clientIp;
+    }
+
+    public String getDataGroupName() {
+        return dataGroupName;
+    }
+
+    public void setDataGroupName(String dataGroupName) {
+        this.dataGroupName = dataGroupName;
+    }
+
+    public String getDataGroupKey() {
+        return dataGroupKey;
+    }
+
+    public void setDataGroupKey(String dataGroupKey) {
+        this.dataGroupKey = dataGroupKey;
+    }
+
+    public String getDataId() {
+        return dataId;
+    }
+
+    public void setDataId(String dataId) {
+        this.dataId = dataId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getLogId() {
+        return logId;
+    }
+
+    public void setLogId(String logId) {
+        this.logId = logId;
+    }
+
+    public Integer getRequestTime() {
+        return requestTime;
+    }
+
+    public void setRequestTime(Integer requestTime) {
+        this.requestTime = requestTime;
     }
 
-    public void setPageSize(Integer pageSize) {
-        this.pageSize = pageSize;
+    public Date getCreatedTime() {
+        return createdTime;
     }
 
-    public Date getDate() {
-        return date;
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
     }
 
-    public void setDate(Date date) {
-        this.date = date;
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
     }
 }

+ 46 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/common/PageInfoModel.java

@@ -0,0 +1,46 @@
+package com.jay.monitor.data.server.models.response.common;
+
+import java.util.List;
+
+public class PageInfoModel<T> {
+
+    private Integer pageSize;
+
+    private Integer pageNo;
+
+    private List<T> list;
+
+    private Integer total;
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Integer getPageNo() {
+        return pageNo;
+    }
+
+    public void setPageNo(Integer pageNo) {
+        this.pageNo = pageNo;
+    }
+
+    public List<T> getList() {
+        return list;
+    }
+
+    public void setList(List<T> list) {
+        this.list = list;
+    }
+
+    public Integer getTotal() {
+        return total;
+    }
+
+    public void setTotal(Integer total) {
+        this.total = total;
+    }
+}

+ 7 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/trace/MQTraceResponse.java

@@ -0,0 +1,7 @@
+package com.jay.monitor.data.server.models.response.trace;
+
+import com.jay.monitor.data.core.model.serializable.MQDataDTO;
+
+public class MQTraceResponse extends MQDataDTO {
+
+}

+ 7 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/trace/SQLTraceResponse.java

@@ -0,0 +1,7 @@
+package com.jay.monitor.data.server.models.response.trace;
+
+import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
+
+public class SQLTraceResponse  extends SQLMonitorDTO {
+
+}

+ 6 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/response/trace/URLTraceResponse.java

@@ -0,0 +1,6 @@
+package com.jay.monitor.data.server.models.response.trace;
+
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+
+public class URLTraceResponse extends URLDataDTO {
+}

+ 21 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/AbstractManager.java

@@ -0,0 +1,21 @@
+package com.jay.monitor.data.server.store;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.server.enums.StoreType;
+
+public abstract class AbstractManager {
+    /**
+     * 存储类型
+     *
+     * @return
+     */
+    public abstract StoreType storeType();
+
+    /**
+     * 消息类型
+     *
+     * @return
+     */
+    public abstract MsgTypeEnums msgTypeEnums();
+
+}

+ 0 - 32
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/AbstractStoreProcess.java

@@ -4,25 +4,16 @@ import com.cat.file.message.MessageManagerProcess;
 import com.cat.file.message.internal.DefaultMessageTree;
 import com.cat.file.message.internal.MessageTree;
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
-import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
 import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
-import com.jay.monitor.data.core.model.serializable.base.ErrorInfoData;
-import com.jay.monitor.data.core.model.serializable.base.JsonTextData;
 import com.jay.monitor.data.server.config.props.MonitorProperties;
-import com.jay.monitor.data.server.costs.ServerConstants;
 import com.jay.monitor.data.server.daos.PartitionOperation;
 import com.jay.monitor.data.server.enums.DataSplitType;
 import com.jay.monitor.data.server.enums.StoreType;
 import com.jay.monitor.data.server.factory.thread.TaskRunnable;
-import com.jay.monitor.data.server.models.entity.JayMonitorMq;
-import com.jay.monitor.data.server.models.entity.JayMonitorSql;
-import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
 import com.jay.monitor.data.server.report.RealtimeAlertProcess;
 import com.jay.monitor.data.server.store.mysql.MysqlDDLProcess;
-import com.jay.monitor.data.server.utils.DataUtils;
 import com.jay.monitor.data.server.utils.MonitorPropertiesUtil;
 import com.jay.monitor.data.server.utils.PrefixUtils;
-import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.beanutils.PropertyUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -216,29 +207,6 @@ public abstract class AbstractStoreProcess<T extends BaseDTO, E> implements Task
      * @param success
      */
     protected void storeAfter(List<T> requestList, List<E> resultList, boolean success) throws Exception {
-        // 记录一些大文本数据
-        for (int i = 0; i < resultList.size(); i++) {
-            T request = requestList.get(i);
-            E result = resultList.get(i);
-            String id = BeanUtils.getProperty(result, "id");
-            if (request instanceof JsonTextData) {
-                DefaultMessageTree messageTree = DataUtils.getJsonContentMessageTree(request, Integer.valueOf(id));
-                if (messageTree != null) {
-                    request.getExtMap().put(ServerConstants.JSON_LOG_ID, messageTree.getFormatMessageId());
-                    this.messageManagerProcess.insert(messageTree);
-                }
-            }
-
-            if (request instanceof ErrorInfoData) {
-
-                DefaultMessageTree messageTree = DataUtils.getErrorMessageTree(request, Integer.valueOf(id));
-                if (messageTree != null) {
-                    request.getExtMap().put(ServerConstants.ERROR_LOG_ID, messageTree.getFormatMessageId());
-                    this.messageManagerProcess.insert(messageTree);
-                }
-            }
-        }
-
         // 告警触发
         realtimeAlertProcess.process(requestList);
     }

+ 42 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/BigTextStoreProcess.java

@@ -0,0 +1,42 @@
+package com.jay.monitor.data.server.store;
+
+import com.cat.file.message.internal.DefaultMessageTree;
+import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
+import com.jay.monitor.data.core.model.serializable.base.ErrorInfoData;
+import com.jay.monitor.data.core.model.serializable.base.JsonTextData;
+import com.jay.monitor.data.server.costs.ServerConstants;
+import com.jay.monitor.data.server.store.AbstractStoreProcess;
+import com.jay.monitor.data.server.utils.DataUtils;
+import org.apache.commons.beanutils.BeanUtils;
+
+import java.util.List;
+
+public abstract class BigTextStoreProcess<T extends BaseDTO, E> extends AbstractStoreProcess<T, E> {
+
+    @Override
+    protected void storeAfter(List<T> requestList, List<E> resultList, boolean success) throws Exception {
+        super.storeAfter(requestList, resultList, success);
+
+        // 记录一些大文本数据
+        for (int i = 0; i < resultList.size(); i++) {
+            T request = requestList.get(i);
+            E result = resultList.get(i);
+            String id = BeanUtils.getProperty(result, "id");
+            if (request instanceof JsonTextData) {
+                DefaultMessageTree messageTree = DataUtils.getJsonContentMessageTree(request, Integer.valueOf(id));
+                if (messageTree != null) {
+                    request.getExtMap().put(ServerConstants.JSON_LOG_ID, messageTree.getFormatMessageId());
+                    this.messageManagerProcess.insert(messageTree);
+                }
+            }
+
+            if (request instanceof ErrorInfoData) {
+                DefaultMessageTree messageTree = DataUtils.getErrorMessageTree(request, Integer.valueOf(id));
+                if (messageTree != null) {
+                    request.getExtMap().put(ServerConstants.ERROR_LOG_ID, messageTree.getFormatMessageId());
+                    this.messageManagerProcess.insert(messageTree);
+                }
+            }
+        }
+    }
+}

+ 23 - 3
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/StoreDataManager.java

@@ -2,7 +2,10 @@ package com.jay.monitor.data.server.store;
 
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
 import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
+import com.jay.monitor.data.core.utils.ResponseUtils;
+import com.jay.monitor.data.server.config.props.MonitorProperties;
 import com.jay.monitor.data.server.enums.StoreType;
+import com.jay.monitor.data.server.utils.DataUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.InitializingBean;
@@ -25,16 +28,19 @@ public class StoreDataManager implements InitializingBean {
     private Logger logger = LoggerFactory.getLogger(getClass());
     @Autowired
     private List<AbstractStoreProcess> storeProcessList;
+    @Autowired
+    private MonitorProperties monitorProperties;
 
-    private StoreType storeType = StoreType.MYSQL;
+    private StoreType defaultStoreType = StoreType.MYSQL;
 
     private Map<MsgTypeEnums, AbstractStoreProcess> processMap = new ConcurrentHashMap<>();
 
     public void setStoreType(StoreType storeType) {
-        this.storeType = storeType;
+        this.defaultStoreType = storeType;
     }
 
     public Object store(MsgTypeEnums msgType, BaseDTO baseDTO) throws Exception {
+        StoreType storeType = getStoreType();
         AbstractStoreProcess storeProcess = processMap.get(msgType);
         if (storeProcess != null) {
             return storeProcess.store(baseDTO);
@@ -44,19 +50,33 @@ public class StoreDataManager implements InitializingBean {
         return null;
     }
 
+    private StoreType getStoreType() {
+        return DataUtils.getDefaultValue(monitorProperties.getStoreType(), this.defaultStoreType);
+    }
+
     public String selectContentById(MsgTypeEnums msgType, String date, String logId) throws Exception {
+        StoreType storeType = getStoreType();
         AbstractStoreProcess storeProcess = processMap.get(msgType);
         if (storeProcess != null) {
-            return storeProcess.searchContentById(date,logId);
+            return storeProcess.searchContentById(date, logId);
         } else {
             logger.warn("找不到对应的[" + storeType + "]存储处理器 : " + msgType);
         }
         return null;
+
     }
 
+    public <T> List<T> searchDataByList(MsgTypeEnums msgType, String date, Integer pageSize, Object entity)
+        throws Exception {
+        AbstractStoreProcess storeProcess = processMap.get(msgType);
+        ResponseUtils.checkNull(storeProcess, msgType + " 找不到对应处理器");
+        return storeProcess.searchDataByList(date, pageSize, entity);
+    }
 
     @Override
     public void afterPropertiesSet() throws Exception {
+        StoreType storeType = getStoreType();
+
         storeProcessList.forEach((bean) -> {
             if (storeType == bean.storeType()) {
                 processMap.put(bean.msgTypeEnums(), bean);

+ 10 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/TraceSearchProcess.java

@@ -0,0 +1,10 @@
+package com.jay.monitor.data.server.store;
+
+import com.jay.monitor.data.core.model.response.PageResponseModel;
+
+public abstract class TraceSearchProcess<E, R> extends AbstractManager {
+
+    public abstract PageResponseModel<R> searchDataByList(String date, Integer pageNo, Integer pageSize, E entity)
+        throws Exception;
+
+}

+ 66 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/TranceJsonManager.java

@@ -0,0 +1,66 @@
+package com.jay.monitor.data.server.store;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.response.PageResponseModel;
+import com.jay.monitor.data.server.config.props.MonitorProperties;
+import com.jay.monitor.data.server.enums.StoreType;
+import com.jay.monitor.data.server.utils.DataUtils;
+import com.jay.monitor.data.server.utils.JayDataUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class TranceJsonManager implements InitializingBean {
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private List<TraceSearchProcess> storeProcessList;
+
+    @Autowired
+    private MonitorProperties monitorProperties;
+
+    private StoreType defaultStoreType = StoreType.MYSQL;
+
+    private Map<MsgTypeEnums, TraceSearchProcess> processMap;
+
+    /**
+     * 获取配置文件中的默认存储配置
+     *
+     * @return
+     */
+    private StoreType getStoreType() {
+        return DataUtils.getDefaultValue(monitorProperties.getStoreType(), this.defaultStoreType);
+    }
+
+    @Override
+    public void afterPropertiesSet() throws Exception {
+        this.processMap = JayDataUtils.builderInitMap(storeProcessList);
+    }
+
+    /**
+     * 查询数据集合
+     *
+     * @param msgTypeEnums
+     * @param date
+     * @param pageNo
+     * @param pageSize
+     * @param entity
+     * @return
+     * @throws Exception
+     */
+    public <R> PageResponseModel<R> searchDataByList(MsgTypeEnums msgTypeEnums, String date, Integer pageNo,
+        Integer pageSize, Object entity) throws Exception {
+        TraceSearchProcess traceSearchProcess = processMap.get(msgTypeEnums);
+        PageResponseModel pageResponseModel = traceSearchProcess.searchDataByList(date, pageNo, pageSize, entity);
+        return pageResponseModel;
+    }
+
+}
+

+ 51 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractElasticSearchStoreProcess.java

@@ -0,0 +1,51 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
+import com.jay.monitor.data.server.componts.ElasticSearchPartition;
+import com.jay.monitor.data.server.daos.PartitionOperation;
+import com.jay.monitor.data.server.enums.StoreType;
+import com.jay.monitor.data.server.store.AbstractStoreProcess;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+public abstract class AbstractElasticSearchStoreProcess<T extends BaseDTO, E> extends AbstractStoreProcess<T, E>
+    implements PartitionOperation<E> {
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+    @Autowired
+    protected ElasticSearchPartition<E, String> elasticSearchPartition;
+
+    @Override
+    public StoreType storeType() {
+        return StoreType.ES;
+    }
+
+    @Override
+    protected PartitionOperation<E> getMapper() {
+        return this;
+    }
+
+    @Override
+    public int batchPartitionInsert(String date, List<E> monitorList) {
+        try {
+            elasticSearchPartition.saveBatchPartition(monitorList, tableName() + "_" + getPartitionId());
+        } catch (Exception e) {
+            logger.error("插入es:" + tableName() + "异常", e);
+        }
+        return 0;
+    }
+
+    @Override
+    public E selectPartitionById(String date, Integer id) {
+        return null;
+    }
+
+    @Override
+    public List<E> selectPartitionByList(String date, Integer pageSize, E record) throws Exception {
+        return this.elasticSearchPartition.searchPartition(tableName() + "_" + date, record);
+    }
+
+}

+ 52 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractTraceElasticSearch.java

@@ -0,0 +1,52 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.model.response.PageResponseModel;
+import com.jay.monitor.data.server.componts.ElasticSearchPartition;
+import com.jay.monitor.data.server.enums.StoreType;
+import com.jay.monitor.data.server.store.TraceSearchProcess;
+import com.jay.monitor.data.server.utils.JayDataUtils;
+import org.elasticsearch.search.sort.SortOrder;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.zxp.esclientrhl.repository.PageList;
+import org.zxp.esclientrhl.repository.Sort;
+import org.zxp.esclientrhl.util.IndexTools;
+import org.zxp.esclientrhl.util.MetaData;
+
+import java.util.List;
+
+public abstract class AbstractTraceElasticSearch<T, R, I> extends TraceSearchProcess<T, R> {
+
+    @Autowired
+    private ElasticSearchPartition elasticSearchPartition;
+
+    /**
+     * 对应的索引实体对象
+     *
+     * @return
+     */
+    public abstract Class getIndexClass();
+
+    @Override
+    public StoreType storeType() {
+        return StoreType.ES;
+    }
+
+    public abstract List<R> builderResponseList(List<I> list);
+
+    @Override
+    public PageResponseModel<R> searchDataByList(String date, Integer pageNo, Integer pageSize, T query)
+        throws Exception {
+        MetaData metaData = IndexTools.getIndexType(getIndexClass());
+        String indexname = metaData.getIndexname();
+        Object esIndexEntity = getIndexClass().newInstance();
+        BeanUtils.copyProperties(query, esIndexEntity);
+        PageList<I> pageList = elasticSearchPartition
+            .searchPartitionPage(JayDataUtils.getTableName(indexname, date), esIndexEntity, pageNo, pageSize,
+                new Sort.Order[] {new Sort.Order(SortOrder.DESC, "createDate")});
+        PageResponseModel<R> pageResponseModel = JayDataUtils
+            .builderPageResponseModel(pageNo, pageSize, pageList.getTotalPages(),
+                builderResponseList(pageList.getList()));
+        return pageResponseModel;
+    }
+}

+ 41 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/ElasticMQStoreProcess.java

@@ -0,0 +1,41 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.serializable.MQDataDTO;
+import com.jay.monitor.data.server.componts.ElasticSearchPartition;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorMQIndex;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author liukx
+ */
+@Component
+public class ElasticMQStoreProcess extends AbstractElasticSearchStoreProcess<MQDataDTO, JayMonitorMQIndex> {
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private ElasticSearchPartition<JayMonitorMQIndex, String> elasticSearchPartition;
+
+    @Override
+    public MsgTypeEnums msgTypeEnums() {
+        return MsgTypeEnums.MQ;
+    }
+
+    @Override
+    protected JayMonitorMQIndex builderJayMonitor(MQDataDTO request) {
+        JayMonitorMQIndex index = new JayMonitorMQIndex();
+        BeanUtils.copyProperties(request, index);
+        return index;
+    }
+
+    @Override
+    public String tableName() {
+        return "jay_monitor_mq";
+    }
+
+}

+ 32 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/ElasticSQLStoreProcess.java

@@ -0,0 +1,32 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorSQLIndex;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ElasticSQLStoreProcess extends AbstractElasticSearchStoreProcess<SQLMonitorDTO, JayMonitorSQLIndex> {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Override
+    public String tableName() {
+        return "jay_monitor_sql";
+    }
+
+    @Override
+    public MsgTypeEnums msgTypeEnums() {
+        return MsgTypeEnums.SQL;
+    }
+
+    @Override
+    protected JayMonitorSQLIndex builderJayMonitor(SQLMonitorDTO request) {
+        JayMonitorSQLIndex index = new JayMonitorSQLIndex();
+        BeanUtils.copyProperties(request, index);
+        return index;
+    }
+
+}

+ 28 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/ElasticURLStoreProcess.java

@@ -0,0 +1,28 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorUrlIndex;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ElasticURLStoreProcess extends AbstractElasticSearchStoreProcess<URLDataDTO, JayMonitorUrlIndex> {
+    @Override
+    public String tableName() {
+        return "jay_monitor_url";
+    }
+
+    @Override
+    public MsgTypeEnums msgTypeEnums() {
+        return MsgTypeEnums.URL;
+    }
+
+    @Override
+    protected JayMonitorUrlIndex builderJayMonitor(URLDataDTO request) {
+        JayMonitorUrlIndex index = new JayMonitorUrlIndex();
+        BeanUtils.copyProperties(request, index);
+        return index;
+    }
+
+}

+ 39 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/MQElasticSearchProcess.java

@@ -0,0 +1,39 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorMQIndex;
+import com.jay.monitor.data.server.models.response.trace.MQTraceResponse;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class MQElasticSearchProcess
+    extends AbstractTraceElasticSearch<JayMonitorMQIndex, MQTraceResponse, JayMonitorMQIndex> {
+
+    @Override
+    public Class getIndexClass() {
+        return JayMonitorMQIndex.class;
+    }
+
+    @Override
+    public MsgTypeEnums msgTypeEnums() {
+        return MsgTypeEnums.MQ;
+    }
+
+    @Override
+    public List<MQTraceResponse> builderResponseList(List<JayMonitorMQIndex> list) {
+        List<MQTraceResponse> sqlTraceResponses = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                JayMonitorMQIndex jayMonitorMQIndex = list.get(i);
+                MQTraceResponse mqTraceResponse = new MQTraceResponse();
+                BeanUtils.copyProperties(jayMonitorMQIndex, mqTraceResponse);
+                sqlTraceResponses.add(mqTraceResponse);
+            }
+        }
+        return sqlTraceResponses;
+    }
+}

+ 40 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/SQLElasticSearchProcess.java

@@ -0,0 +1,40 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorSQLIndex;
+import com.jay.monitor.data.server.models.request.trace.SQLRequest;
+import com.jay.monitor.data.server.models.response.trace.SQLTraceResponse;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class SQLElasticSearchProcess
+    extends AbstractTraceElasticSearch<SQLRequest, SQLTraceResponse, JayMonitorSQLIndex> {
+
+    @Override
+    public Class getIndexClass() {
+        return JayMonitorSQLIndex.class;
+    }
+
+    @Override
+    public MsgTypeEnums msgTypeEnums() {
+        return MsgTypeEnums.SQL;
+    }
+
+    @Override
+    public List<SQLTraceResponse> builderResponseList(List<JayMonitorSQLIndex> list) {
+        List<SQLTraceResponse> sqlTraceResponses = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                JayMonitorSQLIndex jayMonitorSQLIndex = list.get(i);
+                SQLTraceResponse sqlTraceResponse = new SQLTraceResponse();
+                BeanUtils.copyProperties(jayMonitorSQLIndex, sqlTraceResponse);
+                sqlTraceResponses.add(sqlTraceResponse);
+            }
+        }
+        return sqlTraceResponses;
+    }
+}

+ 40 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/URLElasticSearchProcess.java

@@ -0,0 +1,40 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorUrlIndex;
+import com.jay.monitor.data.server.models.request.trace.URLRequest;
+import com.jay.monitor.data.server.models.response.trace.URLTraceResponse;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class URLElasticSearchProcess
+    extends AbstractTraceElasticSearch<URLRequest, URLTraceResponse, JayMonitorUrlIndex> {
+
+    @Override
+    public Class getIndexClass() {
+        return JayMonitorUrlIndex.class;
+    }
+
+    @Override
+    public MsgTypeEnums msgTypeEnums() {
+        return MsgTypeEnums.URL;
+    }
+
+    @Override
+    public List<URLTraceResponse> builderResponseList(List<JayMonitorUrlIndex> list) {
+        List<URLTraceResponse> sqlTraceResponses = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                JayMonitorUrlIndex jayMonitorUrlIndex = list.get(i);
+                URLTraceResponse urlTraceResponse = new URLTraceResponse();
+                BeanUtils.copyProperties(jayMonitorUrlIndex, urlTraceResponse);
+                sqlTraceResponses.add(urlTraceResponse);
+            }
+        }
+        return sqlTraceResponses;
+    }
+}

+ 10 - 24
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlMQStoreProcess.java

@@ -8,11 +8,11 @@ import com.jay.monitor.data.server.daos.JayMonitorMqMapperExt;
 import com.jay.monitor.data.server.daos.PartitionOperation;
 import com.jay.monitor.data.server.enums.StoreType;
 import com.jay.monitor.data.server.models.entity.JayMonitorMq;
-import com.jay.monitor.data.server.store.AbstractStoreProcess;
+import com.jay.monitor.data.server.store.BigTextStoreProcess;
+import com.jay.monitor.data.server.utils.JayDataUtils;
 import com.jay.monitor.data.server.utils.PrefixUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Lazy;
@@ -30,7 +30,7 @@ import java.util.concurrent.atomic.LongAdder;
  */
 @Component
 @Lazy
-public class MysqlMQStoreProcess extends AbstractStoreProcess<MQDataDTO, JayMonitorMq> {
+public class MysqlMQStoreProcess extends BigTextStoreProcess<MQDataDTO, JayMonitorMq> {
 
     private Logger logger = LoggerFactory.getLogger(getClass());
 
@@ -65,7 +65,6 @@ public class MysqlMQStoreProcess extends AbstractStoreProcess<MQDataDTO, JayMoni
         return mqMapper;
     }
 
-
     /**
      * 加速消费,单条记录插入会造成大量的并发写
      *
@@ -89,16 +88,19 @@ public class MysqlMQStoreProcess extends AbstractStoreProcess<MQDataDTO, JayMoni
     @Override
     public String searchContentById(String date, String id) throws Exception {
         JayMonitorMq jayMonitorMq = mqMapper.selectPartitionById(date, Integer.valueOf(id));
-        MessageTree messageTree = new DefaultMessageTree(jayMonitorMq.getApplicationName(), jayMonitorMq.getApplicationIp(), jayMonitorMq.getId(), jayMonitorMq.getCreatedTime(), null);
+        MessageTree messageTree =
+            new DefaultMessageTree(jayMonitorMq.getApplicationName(), jayMonitorMq.getApplicationIp(),
+                jayMonitorMq.getId(), jayMonitorMq.getCreatedTime(), null);
         String messageId = messageTree.getMessageId();
         return this.messageManagerProcess.getMessage(messageId);
     }
 
-
     @Override
     public String searchErrorById(String date, String id) throws Exception {
         JayMonitorMq jayMonitorMq = mqMapper.selectPartitionById(date, Integer.valueOf(id));
-        MessageTree messageTree = new DefaultMessageTree(PrefixUtils.prefixErrorMessage(jayMonitorMq.getApplicationName()), jayMonitorMq.getApplicationIp(), jayMonitorMq.getId(), jayMonitorMq.getCreatedTime(), null);
+        MessageTree messageTree =
+            new DefaultMessageTree(PrefixUtils.prefixErrorMessage(jayMonitorMq.getApplicationName()),
+                jayMonitorMq.getApplicationIp(), jayMonitorMq.getId(), jayMonitorMq.getCreatedTime(), null);
         String messageId = messageTree.getMessageId();
         return this.messageManagerProcess.getMessage(messageId);
     }
@@ -111,23 +113,7 @@ public class MysqlMQStoreProcess extends AbstractStoreProcess<MQDataDTO, JayMoni
 
     @Override
     public JayMonitorMq builderJayMonitor(MQDataDTO request) {
-        JayMonitorMq mqData = new JayMonitorMq();
-        try {
-            BeanUtils.copyProperties(request, mqData);
-            mqData.setApplicationName(request.getApplicationName());
-            mqData.setApplicationIp(request.getIp());
-            mqData.setCreatedTime(request.getCreateDate());
-            mqData.setDataGroupName(request.getGroupName());
-            mqData.setDataGroupKey(request.getGroupKeyName());
-            mqData.setDataId(request.getDataId());
-            mqData.setLogId(request.getLogId());
-            mqData.setInvokeType(request.getInvokeType().name());
-            mqData.setRequestTime(request.getRequestTime());
-        } catch (Exception e) {
-            logger.error("builderJayMonitorMq", e);
-        }
-        return mqData;
+        return JayDataUtils.builderMonitorMQ(request);
     }
 
-
 }

+ 4 - 37
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlSQLStoreProcess.java

@@ -1,35 +1,20 @@
 package com.jay.monitor.data.server.store.mysql;
 
-import com.cat.file.message.internal.DefaultMessageTree;
-import com.cat.file.message.internal.MessageTree;
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
-import com.jay.monitor.data.core.model.serializable.MQDataDTO;
 import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
 import com.jay.monitor.data.server.daos.JayMonitorSqlMapperExt;
 import com.jay.monitor.data.server.daos.PartitionOperation;
 import com.jay.monitor.data.server.enums.StoreType;
-import com.jay.monitor.data.server.models.entity.JayMonitorMq;
 import com.jay.monitor.data.server.models.entity.JayMonitorSql;
-import com.jay.monitor.data.server.store.AbstractStoreProcess;
-import com.jay.monitor.data.server.utils.PrefixUtils;
-import org.apache.commons.beanutils.ConvertUtils;
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.time.DateUtils;
+import com.jay.monitor.data.server.store.BigTextStoreProcess;
+import com.jay.monitor.data.server.utils.JayDataUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.concurrent.atomic.LongAdder;
-
 /**
  * @Module 数据存储器
  * @Description Mysql的SQL存储实现
@@ -38,7 +23,7 @@ import java.util.concurrent.atomic.LongAdder;
  */
 @Component
 @Lazy
-public class MysqlSQLStoreProcess extends AbstractStoreProcess<SQLMonitorDTO, JayMonitorSql> {
+public class MysqlSQLStoreProcess extends BigTextStoreProcess<SQLMonitorDTO, JayMonitorSql> {
 
     private Logger logger = LoggerFactory.getLogger(getClass());
 
@@ -73,25 +58,7 @@ public class MysqlSQLStoreProcess extends AbstractStoreProcess<SQLMonitorDTO, Ja
 
     @Override
     protected JayMonitorSql builderJayMonitor(SQLMonitorDTO request) {
-        JayMonitorSql sqlData = new JayMonitorSql();
-        try {
-            BeanUtils.copyProperties(request, sqlData);
-            sqlData.setApplicationName(request.getApplicationName());
-            sqlData.setApplicationIp(request.getIp());
-            sqlData.setCreatedTime(request.getCreateDate());
-            sqlData.setDataGroupName(request.getGroupName());
-            sqlData.setDataGroupKey(request.getGroupKeyName());
-            sqlData.setDataId(request.getDataId());
-            sqlData.setLogId(request.getLogId());
-            sqlData.setInvokeType(request.getCommandType());
-            sqlData.setRequestTime(request.getRequestTime().intValue());
-            sqlData.setAffectedRows(request.getAffectedRows());
-            sqlData.setTableName(request.getTable());
-            sqlData.setSqlId(request.getSqlId());
-        } catch (Exception e) {
-            logger.error("builderJayMonitorSql 失败", e);
-        }
-        return sqlData;
+        return JayDataUtils.builderJayMonitorSql(request);
     }
 
 }

+ 5 - 21
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlUrlStoreProcess.java

@@ -10,6 +10,8 @@ import com.jay.monitor.data.server.daos.PartitionOperation;
 import com.jay.monitor.data.server.enums.StoreType;
 import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
 import com.jay.monitor.data.server.store.AbstractStoreProcess;
+import com.jay.monitor.data.server.store.BigTextStoreProcess;
+import com.jay.monitor.data.server.utils.JayDataUtils;
 import com.jay.monitor.data.server.utils.PrefixUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -31,7 +33,7 @@ import java.util.List;
  */
 @Component
 @Lazy
-public class MysqlUrlStoreProcess extends AbstractStoreProcess<URLDataDTO, JayMonitorUrl> {
+public class MysqlUrlStoreProcess extends BigTextStoreProcess<URLDataDTO, JayMonitorUrl> {
 
     private Logger logger = LoggerFactory.getLogger(getClass());
     @Autowired
@@ -63,25 +65,7 @@ public class MysqlUrlStoreProcess extends AbstractStoreProcess<URLDataDTO, JayMo
 
     @Override
     protected JayMonitorUrl builderJayMonitor(URLDataDTO request) {
-        String url = request.getUrl();
-        if (StringUtils.isNotEmpty(request.getUrl())) {
-            url = url.replaceAll("//", "/");
-        }
-        JayMonitorUrl monitorUrl = new JayMonitorUrl();
-        BeanUtils.copyProperties(request, monitorUrl);
-        monitorUrl.setUrl(url);
-        monitorUrl.setApplicationName(request.getApplicationName());
-        monitorUrl.setApplicationIp(request.getIp());
-        monitorUrl.setCreatedTime(request.getCreateDate());
-        monitorUrl.setDataGroupName(request.getGroupName());
-        monitorUrl.setDataGroupKey(request.getGroupKeyName());
-        monitorUrl.setDataId(request.getDataId());
-        monitorUrl.setClientIp(request.getClientIp());
-        monitorUrl.setUserId(request.getUserId());
-        if (request.getRequestTime() != null) {
-            monitorUrl.setRequestTime(request.getRequestTime().intValue());
-        }
-        return monitorUrl;
+        return JayDataUtils.builderJayMonitorUrl(request);
     }
 
     @Override
@@ -111,7 +95,7 @@ public class MysqlUrlStoreProcess extends AbstractStoreProcess<URLDataDTO, JayMo
             URLDataDTO request = requestList.get(i);
             monitorList.add(builderJayMonitor(request));
         }
-        
+
         urlMapper.batchPartitionInsert(getPartitionId(), monitorList);
 
         return monitorList;

+ 39 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/ESUtils.java

@@ -0,0 +1,39 @@
+package com.jay.monitor.data.server.utils;
+
+import cn.hutool.core.bean.BeanUtil;
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.MatchQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+public class ESUtils {
+
+    private static List<Class> typeList = Arrays.asList(Integer.class,String.class, Date.class,Double.class,Long.class);
+
+    public static QueryBuilder beanToQueryBuilder(Object t, boolean isKeyword) throws Exception {
+        if (t == null) {
+            return null;
+        }
+        BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
+        Field[] declaredFields = FieldUtils.getAllFields(t.getClass());
+        for (int i = 0; i < declaredFields.length; i++) {
+            Field declaredField = declaredFields[i];
+            String name = declaredField.getName();
+            Object value = BeanUtil.getProperty(t, name);
+            if (value != null && typeList.contains(value.getClass())) {
+                if (isKeyword) {
+                    name = name + ".keyword";
+                }
+                MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(name, value);
+                queryBuilder.must(matchQueryBuilder);
+            }
+        }
+        return queryBuilder;
+    }
+}

+ 116 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/JayDataUtils.java

@@ -0,0 +1,116 @@
+package com.jay.monitor.data.server.utils;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.response.PageInfoModel;
+import com.jay.monitor.data.core.model.response.PageResponseModel;
+import com.jay.monitor.data.core.model.serializable.MQDataDTO;
+import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+import com.jay.monitor.data.server.models.entity.JayMonitorMq;
+import com.jay.monitor.data.server.models.entity.JayMonitorSql;
+import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
+import com.jay.monitor.data.server.store.AbstractManager;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+
+import java.util.HashMap;
+import java.util.List;
+
+public class JayDataUtils {
+    private static Logger logger = LoggerFactory.getLogger(JayDataUtils.class);
+
+    public static JayMonitorUrl builderJayMonitorUrl(URLDataDTO request) {
+        String url = request.getUrl();
+        if (StringUtils.isNotEmpty(request.getUrl())) {
+            url = url.replaceAll("//", "/");
+        }
+        JayMonitorUrl monitorUrl = new JayMonitorUrl();
+        BeanUtils.copyProperties(request, monitorUrl);
+        monitorUrl.setUrl(url);
+        monitorUrl.setApplicationName(request.getApplicationName());
+        monitorUrl.setApplicationIp(request.getIp());
+        monitorUrl.setCreatedTime(request.getCreateDate());
+        monitorUrl.setDataGroupName(request.getGroupName());
+        monitorUrl.setDataGroupKey(request.getGroupKeyName());
+        monitorUrl.setDataId(request.getDataId());
+        monitorUrl.setClientIp(request.getClientIp());
+        monitorUrl.setUserId(request.getUserId());
+        if (request.getRequestTime() != null) {
+            monitorUrl.setRequestTime(request.getRequestTime().intValue());
+        }
+        return monitorUrl;
+    }
+
+    public static JayMonitorSql builderJayMonitorSql(SQLMonitorDTO request) {
+        JayMonitorSql sqlData = new JayMonitorSql();
+        try {
+            BeanUtils.copyProperties(request, sqlData);
+            sqlData.setApplicationName(request.getApplicationName());
+            sqlData.setApplicationIp(request.getIp());
+            sqlData.setCreatedTime(request.getCreateDate());
+            sqlData.setDataGroupName(request.getGroupName());
+            sqlData.setDataGroupKey(request.getGroupKeyName());
+            sqlData.setDataId(request.getDataId());
+            sqlData.setLogId(request.getLogId());
+            sqlData.setInvokeType(request.getCommandType());
+            if (request.getRequestTime() != null) {
+                sqlData.setRequestTime(request.getRequestTime().intValue());
+            }
+            sqlData.setAffectedRows(request.getAffectedRows());
+            sqlData.setTableName(request.getTable());
+            sqlData.setSqlId(request.getSqlId());
+        } catch (Exception e) {
+            logger.error("builderJayMonitorSql 失败", e);
+        }
+        return sqlData;
+    }
+
+    public static JayMonitorMq builderMonitorMQ(MQDataDTO request) {
+        JayMonitorMq mqData = new JayMonitorMq();
+        try {
+            BeanUtils.copyProperties(request, mqData);
+            mqData.setApplicationName(request.getApplicationName());
+            mqData.setApplicationIp(request.getIp());
+            mqData.setCreatedTime(request.getCreateDate());
+            mqData.setDataGroupName(request.getGroupName());
+            mqData.setDataGroupKey(request.getGroupKeyName());
+            mqData.setDataId(request.getDataId());
+            mqData.setLogId(request.getLogId());
+            mqData.setInvokeType(request.getInvokeType().name());
+            mqData.setRequestTime(request.getRequestTime());
+        } catch (Exception e) {
+            logger.error("builderJayMonitorMq", e);
+        }
+        return mqData;
+    }
+
+    public static <R> PageResponseModel<R> builderPageResponseModel(Integer pageNo, Integer pageSize, Integer total,
+        List<R> list) {
+        PageResponseModel<R> pageResponseModel = new PageResponseModel<>();
+        PageInfoModel<R> pageInfoModel = new PageInfoModel<>();
+        pageInfoModel.setResultSet(list);
+        pageInfoModel.setCount(pageNo);
+        pageInfoModel.setPageSize(pageSize);
+        pageInfoModel.setTotal(total);
+        pageResponseModel.setPageModel(pageInfoModel);
+        return pageResponseModel;
+    }
+
+    public static HashMap builderInitMap(List<? extends AbstractManager> storeProcessList) {
+        HashMap processMap = new HashMap<>();
+        if (storeProcessList != null && storeProcessList.size() > 0) {
+            storeProcessList.forEach((process) -> {
+                MsgTypeEnums msgTypeEnums = process.msgTypeEnums();
+                processMap.put(msgTypeEnums, process);
+            });
+        }
+        return processMap;
+    }
+
+    public static String getTableName(String tableName, String date) {
+        return tableName + "_" + date;
+    }
+
+}

+ 1 - 1
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/MonitorPropertiesUtil.java

@@ -15,7 +15,7 @@ import java.util.Map;
 public class MonitorPropertiesUtil {
 
     public static Map<String, DataSplitType> getMysqlTableRuleMap(MonitorProperties properties) {
-        return getTableRuleMap(properties, StoreType.MYSQL);
+        return getTableRuleMap(properties, properties.getStoreType());
     }
 
     public static Map<String, DataSplitType> getTableRuleMap(MonitorProperties properties, StoreType storeType) {

+ 13 - 6
jay-monitor-data-server/src/main/resources/application-dev.yml

@@ -13,12 +13,12 @@ spring:
     test-on-return: false
     test-while-idle: true
     keep-alive: true
-    url: jdbc:mysql://192.168.0.13:3306/elab_db?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior
-    username: root
-    password: elab@123
-#    url: jdbc:mysql://106.14.4.198:3306/jay_monitor?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior
-#    username: jay_monitor
-#    password: jayzhou
+    #    url: jdbc:mysql://192.168.0.13:3306/elab_db?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior
+    #    username: root
+    #    password: elab@123
+    url: jdbc:mysql://106.14.4.198:3306/jay_monitor?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior
+    username: jay_monitor
+    password: jayzhou
   oss:
     access-key-id: LTAImNZed054h0YV
     access-key-secret: 8hmhlhiQ2ikmVeLKujwMNWsktFpSzm
@@ -41,6 +41,13 @@ spring:
     server-domain: http://127.0.0.1:5800
     console-url: ${spring.alert.server-domain}/index.html
     server-log-console: ${spring.alert.server-domain}/api/log/console
+elasticsearch:
+  host: 127.0.0.1:9200
+  max_connect_total: 30
+  max_connect_per_route: 30
+  connection_request_timeout_millis: 2000
+  socket_timeout_millis: 30000
+  connect_timeout_millis: 2000
 logging:
   level:
     com.jay.monitor.data.server: DEBUG

+ 3 - 1
jay-monitor-data-server/src/main/resources/application.yml

@@ -16,11 +16,13 @@ spring:
       force: true
   monitor-server:
     store-info:
-      mysql:
+      es:
         table-rule:
           jay_monitor_mq: day
           jay_monitor_url: day
           jay_monitor_sql: day
+    store-type: es
+
   thymeleaf:
     cache: false
     prefix: classpath:/templates

+ 10 - 0
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/SpringRunCase.java

@@ -0,0 +1,10 @@
+package com.jay.monitor.data.server;
+
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {MonitorServerApplication.class})
+public class SpringRunCase {
+}

+ 28 - 0
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/StoreDataManagerTest.java

@@ -0,0 +1,28 @@
+package com.jay.monitor.data.server.store;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.server.SpringRunCase;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorMQIndex;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+public class StoreDataManagerTest extends SpringRunCase {
+    @Autowired
+    private StoreDataManager storeDataManager;
+
+    public void testStore() {
+    }
+
+    public void testSelectContentById() {
+    }
+
+    @Test
+    public void testSearchDataByList() throws Exception {
+        JayMonitorMQIndex musicModel = new JayMonitorMQIndex();
+        musicModel.setDataId("2766");
+        List<Object> storeObjectList = storeDataManager.searchDataByList(MsgTypeEnums.MQ, "210317", 10, musicModel);
+        System.out.println(storeObjectList);
+    }
+}

+ 33 - 0
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/TranceJsonManagerTest.java

@@ -0,0 +1,33 @@
+package com.jay.monitor.data.server.store;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.response.PageResponseModel;
+import com.jay.monitor.data.server.SpringRunCase;
+import com.jay.monitor.data.server.models.request.trace.MQRequest;
+import com.jay.monitor.data.server.models.request.trace.SQLRequest;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TranceJsonManagerTest extends SpringRunCase {
+
+    @Autowired
+    private TranceJsonManager tranceJsonManager;
+
+    @Test
+    public void testSearchMQDataByList() throws Exception {
+        MQRequest request = new MQRequest();
+        request.setDataId("2766");
+        PageResponseModel<Object> objectPageResponseModel =
+            tranceJsonManager.searchDataByList(MsgTypeEnums.MQ, "210317", 1, 10, request);
+        System.out.println(objectPageResponseModel);
+    }
+
+    @Test
+    public void testSearchSQLDataByList() throws Exception {
+        SQLRequest request = new SQLRequest();
+        request.setDataId("1");
+        PageResponseModel<Object> objectPageResponseModel =
+            tranceJsonManager.searchDataByList(MsgTypeEnums.SQL, "210317", 1, 10, request);
+        System.out.println(objectPageResponseModel);
+    }
+}

+ 49 - 0
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/ESTestModel.java

@@ -0,0 +1,49 @@
+package com.jay.monitor.data.server.store.es;
+
+import org.zxp.esclientrhl.annotation.ESMetaData;
+
+import java.util.Date;
+
+@ESMetaData(indexName = "es_test", number_of_shards = 5, number_of_replicas = 0)
+public class ESTestModel {
+
+    private String username;
+
+    private String id;
+
+    private String remark;
+
+    private Date created;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Date getCreated() {
+        return created;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+}

+ 144 - 0
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/ElasticMQStoreProcessTest.java

@@ -0,0 +1,144 @@
+package com.jay.monitor.data.server.store.es;
+
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.jay.monitor.data.server.componts.ElasticSearchPartition;
+import com.jay.monitor.data.server.config.BeanConfig;
+import com.jay.monitor.data.server.config.ElasticSearchBeanConfig;
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.elasticsearch.action.bulk.BulkResponse;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.MatchQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.sort.SortOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.zxp.esclientrhl.annotation.EnableESTools;
+import org.zxp.esclientrhl.index.ElasticsearchIndex;
+import org.zxp.esclientrhl.repository.Attach;
+import org.zxp.esclientrhl.repository.PageList;
+import org.zxp.esclientrhl.repository.PageSortHighLight;
+import org.zxp.esclientrhl.repository.Sort;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {BeanConfig.class, ElasticSearchBeanConfig.class})
+@EnableESTools(basePackages = "com.jay.monitor.data.server.store.es")
+public class ElasticMQStoreProcessTest {
+    @Autowired
+    ElasticsearchIndex elasticsearchIndex;
+    @Autowired
+    RestHighLevelClient client;
+    @Autowired
+    ElasticSearchPartition elasticSearchPartition;
+
+    @Test
+    public void insert() throws Exception {
+        //        String topicId = "97773"; // 晴天
+        //        String topicId = "680279"; // 烟花易冷
+        insertMusic("102296985");
+        insertMusic("680279");
+        insertMusic("97773");
+    }
+
+    /**
+     * 查询单条数据的用例
+     *
+     * @throws Exception
+     */
+    @Test
+    public void searchTemplate() throws Exception {
+        String indexName = "music";
+        MusicModel musicModel = new MusicModel();
+        musicModel.setNick("许南安");
+        List<MusicModel> music = this.elasticSearchPartition.searchPartition(indexName, musicModel);
+        System.out.println(music);
+
+        musicModel = new MusicModel();
+        musicModel.setRootcommentcontent("喜欢");
+        PageList pageList = elasticSearchPartition.searchPartitionPage(indexName, musicModel, 1, 10,
+            new Sort.Order[] {new Sort.Order(SortOrder.DESC, "time.keyword")});
+        System.out.println(pageList);
+    }
+
+    @Test
+    public void searchTest() throws Exception {
+        //        MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery("rootcommentcontent", "喜欢");
+
+        String sorter = "time.keyword";
+        Attach attach = new Attach();
+
+        //        attach.setSearchAfter(true);
+        PageSortHighLight pageSortHighLight = new PageSortHighLight(1, 10);
+        Sort.Order order = new Sort.Order(SortOrder.DESC, sorter);
+        pageSortHighLight.setSort(new Sort(order));
+        attach.setPageSortHighLight(pageSortHighLight);
+
+        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+        //        MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery("", "");
+        MusicModel model = new MusicModel();
+        model.setNick("青柍");
+        //        model.setAvatarurl("sadf");
+        Field[] declaredFields = model.getClass().getDeclaredFields();
+        for (int i = 0; i < declaredFields.length; i++) {
+            Field declaredField = declaredFields[i];
+            String name = declaredField.getName();
+            String value = BeanUtils.getProperty(model, name);
+            if (StringUtils.isNotBlank(value)) {
+                MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(name + ".keyword", value);
+                boolQueryBuilder.must(matchQueryBuilder);
+            }
+        }
+        //        boolQueryBuilder.must(matchPhraseQueryBuilder);
+        PageList<MusicModel> search1 = elasticSearchPartition.search(boolQueryBuilder, attach, MusicModel.class);
+        List<MusicModel> list = search1.getList();
+        System.out.println(list);
+    }
+
+    private void insertMusic(String topicId) throws Exception {
+        String url =
+            "https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?g_tk_new_20200303=5381&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=GB2312&notice=0&platform=yqq.json&needNewCode=0&cid=205360772&reqtype=2&biztype=1&topid="
+                + topicId
+                + "&cmd=8&needmusiccrit=0&pagenum=0&pagesize=100&lasthotcommentid=&domain=qq.com&ct=24&cv=10101010";
+        String commentJsonString = HttpUtil.downloadString(url, "UTF-8");
+        JSONObject jsonObject = JSON.parseObject(commentJsonString);
+        JSONObject hotComment = jsonObject.getJSONObject("hot_comment");
+        JSONArray commentList = hotComment.getJSONArray("commentlist");
+        List<MusicModel> testModelList = new ArrayList<>();
+        for (int i = 0; i < commentList.size(); i++) {
+            MusicModel musicModel = commentList.getObject(i, MusicModel.class);
+            testModelList.add(musicModel);
+        }
+        BulkResponse save = elasticSearchPartition.save(testModelList);
+
+        System.out.println("添加完毕 : " + save.hasFailures());
+        System.out.println(save.toString());
+    }
+
+    @Test
+    public void delete() {
+
+    }
+
+    private ESTestModel builderModel(String userName, String text) {
+        ESTestModel testModel = new ESTestModel();
+        testModel.setId(RandomUtil.randomString(5));
+        testModel.setCreated(new Date());
+        testModel.setRemark(userName);
+        testModel.setUsername(text);
+        return testModel;
+    }
+
+}

+ 342 - 0
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/MusicModel.java

@@ -0,0 +1,342 @@
+package com.jay.monitor.data.server.store.es;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.zxp.esclientrhl.annotation.ESMetaData;
+
+@ESMetaData(indexName = "music", number_of_shards = 5, number_of_replicas = 0, printLog = true)
+public class MusicModel {
+
+    /**
+     * avatarurl : http://thirdqq.qlogo.cn/g?b=sdk&k=SHV0ay6NszR9Vib8d3CCPNw&s=140&t=1613993130
+     * commentid : song_97773_501218756_1615879261
+     * commit_state : 2
+     * enable_delete : 0
+     * encrypt_rootcommentuin : 7Kn5ow6F7i4s
+     * encrypt_uin : 7Kn5ow6F7i4s
+     * identity_pic :
+     * identity_type : 0
+     * is_hot : 1
+     * is_hot_cmt : 0
+     * is_medal : 1
+     * is_stick : 0
+     * ispraise : 0
+     * middlecommentcontent : null
+     * nick : 园游会
+     * permission : 0
+     * praisenum : 0
+     * root_enable_delete : 0
+     * root_identity_pic :
+     * root_identity_type : 0
+     * root_is_stick : 0
+     * rootcommentcontent : 从前从前,有个人要发专辑,但偏偏,风渐渐,把专辑吹得好远。​
+     * rootcommentid : song_97773_501218756_1615879261
+     * rootcommentnick : @园游会
+     * score : 0
+     * taoge_topic :
+     * taoge_url :
+     * time : 1615879261
+     * user_type :
+     * vipicon : http://y.qq.com/music/icon/v1/pc/nsvip5.png
+     */
+
+    @JSONField(name = "avatarurl")
+    private String avatarurl;
+    @JSONField(name = "commentid")
+    private String commentid;
+    @JSONField(name = "commit_state")
+    private Integer commitState;
+    @JSONField(name = "enable_delete")
+    private Integer enableDelete;
+    @JSONField(name = "encrypt_rootcommentuin")
+    private String encryptRootcommentuin;
+    @JSONField(name = "encrypt_uin")
+    private String encryptUin;
+    @JSONField(name = "identity_pic")
+    private String identityPic;
+    @JSONField(name = "identity_type")
+    private Integer identityType;
+    @JSONField(name = "is_hot")
+    private Integer isHot;
+    @JSONField(name = "is_hot_cmt")
+    private Integer isHotCmt;
+    @JSONField(name = "is_medal")
+    private Integer isMedal;
+    @JSONField(name = "is_stick")
+    private Integer isStick;
+    @JSONField(name = "ispraise")
+    private Integer ispraise;
+    @JSONField(name = "middlecommentcontent")
+    private Object middlecommentcontent;
+    @JSONField(name = "nick")
+    private String nick;
+    @JSONField(name = "permission")
+    private Integer permission;
+    @JSONField(name = "praisenum")
+    private Integer praisenum;
+    @JSONField(name = "root_enable_delete")
+    private Integer rootEnableDelete;
+    @JSONField(name = "root_identity_pic")
+    private String rootIdentityPic;
+    @JSONField(name = "root_identity_type")
+    private Integer rootIdentityType;
+    @JSONField(name = "root_is_stick")
+    private Integer rootIsStick;
+    @JSONField(name = "rootcommentcontent")
+    private String rootcommentcontent;
+    @JSONField(name = "rootcommentid")
+    private String rootcommentid;
+    @JSONField(name = "rootcommentnick")
+    private String rootcommentnick;
+    @JSONField(name = "score")
+    private Integer score;
+    @JSONField(name = "taoge_topic")
+    private String taogeTopic;
+    @JSONField(name = "taoge_url")
+    private String taogeUrl;
+    @JSONField(name = "time")
+    private Integer time;
+    @JSONField(name = "user_type")
+    private String userType;
+    @JSONField(name = "vipicon")
+    private String vipicon;
+
+    public String getAvatarurl() {
+        return avatarurl;
+    }
+
+    public void setAvatarurl(String avatarurl) {
+        this.avatarurl = avatarurl;
+    }
+
+    public String getCommentid() {
+        return commentid;
+    }
+
+    public void setCommentid(String commentid) {
+        this.commentid = commentid;
+    }
+
+    public Integer getCommitState() {
+        return commitState;
+    }
+
+    public void setCommitState(Integer commitState) {
+        this.commitState = commitState;
+    }
+
+    public Integer getEnableDelete() {
+        return enableDelete;
+    }
+
+    public void setEnableDelete(Integer enableDelete) {
+        this.enableDelete = enableDelete;
+    }
+
+    public String getEncryptRootcommentuin() {
+        return encryptRootcommentuin;
+    }
+
+    public void setEncryptRootcommentuin(String encryptRootcommentuin) {
+        this.encryptRootcommentuin = encryptRootcommentuin;
+    }
+
+    public String getEncryptUin() {
+        return encryptUin;
+    }
+
+    public void setEncryptUin(String encryptUin) {
+        this.encryptUin = encryptUin;
+    }
+
+    public String getIdentityPic() {
+        return identityPic;
+    }
+
+    public void setIdentityPic(String identityPic) {
+        this.identityPic = identityPic;
+    }
+
+    public Integer getIdentityType() {
+        return identityType;
+    }
+
+    public void setIdentityType(Integer identityType) {
+        this.identityType = identityType;
+    }
+
+    public Integer getIsHot() {
+        return isHot;
+    }
+
+    public void setIsHot(Integer isHot) {
+        this.isHot = isHot;
+    }
+
+    public Integer getIsHotCmt() {
+        return isHotCmt;
+    }
+
+    public void setIsHotCmt(Integer isHotCmt) {
+        this.isHotCmt = isHotCmt;
+    }
+
+    public Integer getIsMedal() {
+        return isMedal;
+    }
+
+    public void setIsMedal(Integer isMedal) {
+        this.isMedal = isMedal;
+    }
+
+    public Integer getIsStick() {
+        return isStick;
+    }
+
+    public void setIsStick(Integer isStick) {
+        this.isStick = isStick;
+    }
+
+    public Integer getIspraise() {
+        return ispraise;
+    }
+
+    public void setIspraise(Integer ispraise) {
+        this.ispraise = ispraise;
+    }
+
+    public Object getMiddlecommentcontent() {
+        return middlecommentcontent;
+    }
+
+    public void setMiddlecommentcontent(Object middlecommentcontent) {
+        this.middlecommentcontent = middlecommentcontent;
+    }
+
+    public String getNick() {
+        return nick;
+    }
+
+    public void setNick(String nick) {
+        this.nick = nick;
+    }
+
+    public Integer getPermission() {
+        return permission;
+    }
+
+    public void setPermission(Integer permission) {
+        this.permission = permission;
+    }
+
+    public Integer getPraisenum() {
+        return praisenum;
+    }
+
+    public void setPraisenum(Integer praisenum) {
+        this.praisenum = praisenum;
+    }
+
+    public Integer getRootEnableDelete() {
+        return rootEnableDelete;
+    }
+
+    public void setRootEnableDelete(Integer rootEnableDelete) {
+        this.rootEnableDelete = rootEnableDelete;
+    }
+
+    public String getRootIdentityPic() {
+        return rootIdentityPic;
+    }
+
+    public void setRootIdentityPic(String rootIdentityPic) {
+        this.rootIdentityPic = rootIdentityPic;
+    }
+
+    public Integer getRootIdentityType() {
+        return rootIdentityType;
+    }
+
+    public void setRootIdentityType(Integer rootIdentityType) {
+        this.rootIdentityType = rootIdentityType;
+    }
+
+    public Integer getRootIsStick() {
+        return rootIsStick;
+    }
+
+    public void setRootIsStick(Integer rootIsStick) {
+        this.rootIsStick = rootIsStick;
+    }
+
+    public String getRootcommentcontent() {
+        return rootcommentcontent;
+    }
+
+    public void setRootcommentcontent(String rootcommentcontent) {
+        this.rootcommentcontent = rootcommentcontent;
+    }
+
+    public String getRootcommentid() {
+        return rootcommentid;
+    }
+
+    public void setRootcommentid(String rootcommentid) {
+        this.rootcommentid = rootcommentid;
+    }
+
+    public String getRootcommentnick() {
+        return rootcommentnick;
+    }
+
+    public void setRootcommentnick(String rootcommentnick) {
+        this.rootcommentnick = rootcommentnick;
+    }
+
+    public Integer getScore() {
+        return score;
+    }
+
+    public void setScore(Integer score) {
+        this.score = score;
+    }
+
+    public String getTaogeTopic() {
+        return taogeTopic;
+    }
+
+    public void setTaogeTopic(String taogeTopic) {
+        this.taogeTopic = taogeTopic;
+    }
+
+    public String getTaogeUrl() {
+        return taogeUrl;
+    }
+
+    public void setTaogeUrl(String taogeUrl) {
+        this.taogeUrl = taogeUrl;
+    }
+
+    public Integer getTime() {
+        return time;
+    }
+
+    public void setTime(Integer time) {
+        this.time = time;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    public String getVipicon() {
+        return vipicon;
+    }
+
+    public void setVipicon(String vipicon) {
+        this.vipicon = vipicon;
+    }
+}

+ 12 - 2
jay-monitor-data-server/src/test/resources/application-dev.yml

@@ -1,11 +1,13 @@
 spring:
   monitor-server:
+    store-type: es
     store-info:
-      mysql:
+      es:
         table-rule:
           jay_monitor_mq: day
           jay_monitor_url: day
           jay_monitor_sql: day
+
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.jdbc.Driver
@@ -37,4 +39,12 @@ spring:
     access-key-secret: 8hmhlhiQ2ikmVeLKujwMNWsktFpSzm
     endpoint: https://oss-cn-shanghai.aliyuncs.com
     default-bucket-name: linux-data
-    default-bucket-path: alert/image  # 注意不要/开头
+    default-bucket-path: alert/image  # 注意不要/开头
+
+elasticsearch:
+  host: 127.0.0.1:9200
+  max_connect_total: 30
+  max_connect_per_route: 30
+  connection_request_timeout_millis: 2000
+  socket_timeout_millis: 30000
+  connect_timeout_millis: 2000

+ 0 - 1
数据调度监控.md

@@ -7,7 +7,6 @@
 - 客户端在线列表
 - 客户端在线离线告警
 
-
 涉及客户端: 
 - zuul      -       URL
 - druid     -       SQL