Browse Source

提交一版

liukx 4 years ago
parent
commit
fc0169209b
15 changed files with 414 additions and 53 deletions
  1. 2 2
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/MQDataDTO.java
  2. 21 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/anno/ESSearch.java
  3. 4 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartition.java
  4. 13 9
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartitionImpl.java
  5. 20 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/ESQuerySyntax.java
  6. 225 3
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorMQIndex.java
  7. 15 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/MQRequest.java
  8. 13 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/URLRequest.java
  9. 6 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractElasticSearchStoreProcess.java
  10. 12 4
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractTraceElasticSearch.java
  11. 1 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/MQElasticSearchProcess.java
  12. 30 12
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/ESUtils.java
  13. 23 10
      jay-monitor-data-server/src/main/resources/templates/trace/mqList.html
  14. 13 7
      jay-monitor-data-server/src/main/resources/templates/trace/urlList.html
  15. 16 2
      jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/ElasticMQStoreProcessTest.java

+ 2 - 2
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/MQDataDTO.java

@@ -7,8 +7,8 @@ import com.jay.monitor.data.core.model.serializable.base.*;
 import java.util.Date;
 
 /**
- * @Module TODO
- * @Description TODO
+ * @Module 消息队列传输层
+ * @Description 消息队列传输层
  * @Author liukaixiong
  * @Date 2020/10/27 13:50
  */

+ 21 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/anno/ESSearch.java

@@ -0,0 +1,21 @@
+package com.jay.monitor.data.server.anno;
+
+import com.jay.monitor.data.server.enums.ESQuerySyntax;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD, ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ESSearch {
+
+    /**
+     * 默认字段的查询类型
+     *
+     * @return
+     */
+    ESQuerySyntax value() default ESQuerySyntax.eq;
+
+}

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

@@ -1,6 +1,7 @@
 package com.jay.monitor.data.server.componts;
 
 import org.elasticsearch.action.bulk.BulkResponse;
+import org.elasticsearch.index.query.QueryBuilder;
 import org.zxp.esclientrhl.repository.ElasticsearchTemplate;
 import org.zxp.esclientrhl.repository.PageList;
 import org.zxp.esclientrhl.repository.Sort;
@@ -17,4 +18,7 @@ public interface ElasticSearchPartition<T, M> extends ElasticsearchTemplate<T, M
 
     public PageList<T> searchPartitionPage(String indexName, T t, int pageNo, int pageSize, Sort.Order[] sort)
         throws Exception;
+
+    public PageList<T> searchPartitionPage(String indexName, QueryBuilder queryBuilder, int pageNo, int pageSize,
+        Class clazz, Sort.Order[] sort) throws Exception;
 }

+ 13 - 9
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/componts/ElasticSearchPartitionImpl.java

@@ -53,16 +53,22 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
     @Override
     public PageList<T> searchPartitionPage(String indexName, T t, int pageNo, int pageSize, Sort.Order[] sort)
         throws Exception {
-        QueryBuilder queryBuilder = ESUtils.beanToQueryBuilder(t, false);
+        QueryBuilder queryBuilder = ESUtils.beanToQueryBuilder(t);
+        return searchPartitionPage(indexName, queryBuilder, pageNo, pageSize, t.getClass(), sort);
+    }
+
+    @Override
+    public PageList<T> searchPartitionPage(String indexName, QueryBuilder queryBuilder, int pageNo, int pageSize,
+        Class clazz, Sort.Order[] sort) throws Exception {
         Attach attach = builderAttach(pageNo, pageSize, sort);
-        PageList<T> pageList = super.search(queryBuilder, attach, (Class<T>)t.getClass(), indexName);
+        PageList<T> pageList = super.search(queryBuilder, attach, clazz, 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);
+        QueryBuilder queryBuilder = ESUtils.beanToQueryBuilder(t);
+        return super.search(queryBuilder, (Class<T>)t.getClass(), indexName);
     }
 
     private Attach builderAttach(int pageNo, int pageSize, Sort.Order[] ordered) {
@@ -182,12 +188,11 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
             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);
+                bulkResponses[i] = this.savePart((List)lists.get(i), indexname);
             }
             return bulkResponses;
         } else {
@@ -195,16 +200,15 @@ public class ElasticSearchPartitionImpl<T, M> extends ElasticsearchTemplateImpl<
         }
     }
 
-    private BulkResponse savePart(List<T> list, String indexname, String indextype) throws Exception {
+    private BulkResponse savePart(List<T> list, String indexname) 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));
+            rrr.add((new IndexRequest(indexname)).source(sourceJsonStr, XContentType.JSON));
         }
 
         BulkResponse bulkResponse = this.client.bulk(rrr, RequestOptions.DEFAULT);

+ 20 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/ESQuerySyntax.java

@@ -0,0 +1,20 @@
+package com.jay.monitor.data.server.enums;
+
+public enum ESQuerySyntax {
+    /**
+     * 模糊
+     */
+    like,
+    /**
+     * 大于
+     */
+    gt,
+    /**
+     * 等于
+     */
+    eq,
+    /**
+     * 小于
+     */
+    lt,
+}

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

@@ -1,9 +1,231 @@
 package com.jay.monitor.data.server.models.entity.es;
 
-import com.jay.monitor.data.core.model.serializable.MQDataDTO;
+import com.jay.monitor.data.core.enums.MQInvokeType;
+import com.jay.monitor.data.server.anno.ESSearch;
+import com.jay.monitor.data.server.enums.ESQuerySyntax;
 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 {
+import java.util.Date;
 
+@ESMetaData(indexName = "jay_monitor_mq", indexType = "mq", number_of_shards = 5, number_of_replicas = 0, printLog = true)
+public class JayMonitorMQIndex {
+    /**
+     * 创建时间
+     */
+    private Date createDate;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+    private String rootLogId;
+
+    private String parentLogId;
+    /**
+     * 订阅主题
+     */
+    private String topic;
+    /**
+     * 消息类型
+     */
+    private String mqType;
+    /**
+     * 分区名称
+     */
+    private String partitionName;
+    /**
+     * 执行类型  生产/ 消费
+     */
+    private MQInvokeType invokeType;
+
+    /**
+     * 来源时间
+     */
+    private Date sourceTime;
+
+    /**
+     * 消息编号
+     */
+    private String msgId;
+
+    private String ip;
+
+    private String applicationName;
+
+    private String groupName;
+
+    private String groupKeyName;
+
+    private String dataId;
+
+    private String logId;
+
+    @ESSearch(value = ESQuerySyntax.like)
+    private String jsonContent;
+    @ESSearch(value = ESQuerySyntax.gt)
+    private Long requestTime;
+
+    private String errorMessage;
+
+    private String errorStackTrace;
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public void setErrorMessage(String errorMessage) {
+        this.errorMessage = errorMessage;
+    }
+
+    public String getErrorMessage() {
+        return this.errorMessage;
+    }
+
+    public void setErrorStackTrace(String stackTrace) {
+        this.errorStackTrace = stackTrace;
+    }
+
+    public String getErrorStackTrace() {
+        return this.errorStackTrace;
+    }
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public String getGroupKeyName() {
+        return groupKeyName;
+    }
+
+    public void setGroupKeyName(String groupKeyName) {
+        this.groupKeyName = groupKeyName;
+    }
+
+    public String getDataId() {
+        return dataId;
+    }
+
+    public void setDataId(String dataId) {
+        this.dataId = dataId;
+    }
+
+    public String getJsonContent() {
+        return jsonContent;
+    }
+
+    public void setJsonContent(String jsonContent) {
+        this.jsonContent = jsonContent;
+    }
+
+    public Long getRequestTime() {
+        return this.requestTime;
+    }
+
+    public void setRequestTime(Long requestTime) {
+        this.requestTime = requestTime;
+    }
+
+    public String getLogId() {
+        return this.logId;
+    }
+
+    public void setLogId(String logId) {
+        this.logId = logId;
+    }
+
+    public Date getSourceTime() {
+        return sourceTime;
+    }
+
+    public void setSourceTime(Date sourceTime) {
+        this.sourceTime = sourceTime;
+    }
+
+    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 getRootLogId() {
+        return this.rootLogId;
+    }
+
+    public void setRootLogId(String rootLogId) {
+        this.rootLogId = rootLogId;
+    }
+
+    public String getParentLogId() {
+        return this.parentLogId;
+    }
+
+    public void setParentLogId(String parentLogId) {
+        this.parentLogId = parentLogId;
+    }
+
+    public String getTopic() {
+        return topic;
+    }
+
+    public void setTopic(String topic) {
+        this.topic = topic;
+    }
+
+    public String getMqType() {
+        return mqType;
+    }
+
+    public void setMqType(String mqType) {
+        this.mqType = mqType;
+    }
+
+    public MQInvokeType getInvokeType() {
+        return invokeType;
+    }
+
+    public void setInvokeType(MQInvokeType invokeType) {
+        this.invokeType = invokeType;
+    }
 }

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

@@ -1,5 +1,6 @@
 package com.jay.monitor.data.server.models.request.trace;
 
+import javax.persistence.Column;
 import java.util.Date;
 
 /**
@@ -13,6 +14,7 @@ public class MQRequest extends PageRequest {
     /**
      * 主键名称
      */
+    @Column
     private Integer id;
 
     /**
@@ -100,6 +102,19 @@ public class MQRequest extends PageRequest {
      */
     private Date createdTime;
 
+    /**
+     * 参数内容
+     */
+    private String jsonContent;
+
+    public String getJsonContent() {
+        return jsonContent;
+    }
+
+    public void setJsonContent(String jsonContent) {
+        this.jsonContent = jsonContent;
+    }
+
     public Long getRequestTime() {
         return requestTime;
     }
@@ -108,8 +123,6 @@ public class MQRequest extends PageRequest {
         this.requestTime = requestTime;
     }
 
-    private static final long serialVersionUID = 1L;
-
     public Integer getId() {
         return id;
     }

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

@@ -79,6 +79,19 @@ public class URLRequest extends PageRequest {
      */
     private Date createdTime;
 
+    /**
+     * 参数内容
+     */
+    private String jsonContent;
+
+    public String getJsonContent() {
+        return jsonContent;
+    }
+
+    public void setJsonContent(String jsonContent) {
+        this.jsonContent = jsonContent;
+    }
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {

+ 6 - 2
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractElasticSearchStoreProcess.java

@@ -5,6 +5,8 @@ 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 com.jay.monitor.data.server.utils.JayDataUtils;
+import org.elasticsearch.action.bulk.BulkResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,12 +32,14 @@ public abstract class AbstractElasticSearchStoreProcess<T extends BaseDTO, E> ex
 
     @Override
     public int batchPartitionInsert(String date, List<E> monitorList) {
+        BulkResponse[] bulkResponses = null;
         try {
-            elasticSearchPartition.saveBatchPartition(monitorList, tableName() + "_" + getPartitionId());
+            bulkResponses = elasticSearchPartition
+                .saveBatchPartition(monitorList, JayDataUtils.getTableName(tableName(), getPartitionId()));
         } catch (Exception e) {
             logger.error("插入es:" + tableName() + "异常", e);
         }
-        return 0;
+        return bulkResponses == null ? 0 : bulkResponses.length;
     }
 
     @Override

+ 12 - 4
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractTraceElasticSearch.java

@@ -4,7 +4,9 @@ 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.ESUtils;
 import com.jay.monitor.data.server.utils.JayDataUtils;
+import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.search.sort.SortOrder;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,15 +36,21 @@ public abstract class AbstractTraceElasticSearch<T, R, I> extends TraceSearchPro
 
     public abstract List<R> builderResponseList(List<I> list);
 
+    protected QueryBuilder builderQuery(I query) throws Exception {
+        return ESUtils.beanToQueryBuilder(query);
+    }
+
     @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,
+        String partitionIndexName = JayDataUtils.getTableName(indexname, date);
+        Object indexEntity = getIndexClass().newInstance();
+        BeanUtils.copyProperties(query, indexEntity);
+        QueryBuilder queryBuilder = builderQuery((I)indexEntity);
+        PageList pageList = elasticSearchPartition
+            .searchPartitionPage(partitionIndexName, queryBuilder, pageNo, pageSize, getIndexClass(),
                 new Sort.Order[] {new Sort.Order(SortOrder.DESC, "createDate")});
         PageResponseModel<R> pageResponseModel = JayDataUtils
             .builderPageResponseModel(pageNo, pageSize, pageList.getTotalPages(),

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

@@ -36,4 +36,5 @@ public class MQElasticSearchProcess
         }
         return sqlTraceResponses;
     }
+
 }

+ 30 - 12
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/ESUtils.java

@@ -1,11 +1,13 @@
 package com.jay.monitor.data.server.utils;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.jay.monitor.data.server.anno.ESSearch;
+import com.jay.monitor.data.server.enums.ESQuerySyntax;
+import com.jay.monitor.data.server.models.entity.es.JayMonitorMQIndex;
 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 org.elasticsearch.index.query.*;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.util.ObjectUtils;
 
 import java.lang.reflect.Field;
 import java.util.Arrays;
@@ -14,26 +16,42 @@ import java.util.List;
 
 public class ESUtils {
 
-    private static List<Class> typeList = Arrays.asList(Integer.class,String.class, Date.class,Double.class,Long.class);
+    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 {
+    public static QueryBuilder beanToQueryBuilder(Object t) throws Exception {
         if (t == null) {
             return null;
         }
-        BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
+        BoolQueryBuilder boolQueryBuilder = 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) {
+            if (value != null && !ObjectUtils.isEmpty(value) && typeList.contains(value.getClass())) {
+                ESSearch esSearch = AnnotationUtils.findAnnotation(declaredField, ESSearch.class);
+                QueryBuilder queryBuilder = null;
+                if (esSearch == null || esSearch.value() == ESQuerySyntax.eq) {
                     name = name + ".keyword";
+                    queryBuilder = QueryBuilders.matchQuery(name, value);
+                } else if (esSearch.value() == ESQuerySyntax.gt) {
+                    queryBuilder = QueryBuilders.rangeQuery(name).gt(value);
+                } else if (esSearch.value() == ESQuerySyntax.lt) {
+                    queryBuilder = QueryBuilders.rangeQuery(name).lt(value);
+                } else if (esSearch.value() == ESQuerySyntax.like) {
+                    queryBuilder = QueryBuilders.matchPhraseQuery(name, value);
                 }
-                MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(name, value);
-                queryBuilder.must(matchQueryBuilder);
+                boolQueryBuilder.must(queryBuilder);
             }
         }
-        return queryBuilder;
+        return boolQueryBuilder;
+    }
+
+    public static void main(String[] args) throws Exception {
+        JayMonitorMQIndex index = new JayMonitorMQIndex();
+        index.setRequestTime(11111L);
+        QueryBuilder queryBuilder = beanToQueryBuilder(index);
+        System.out.println(queryBuilder);
     }
 }

+ 23 - 10
jay-monitor-data-server/src/main/resources/templates/trace/mqList.html

@@ -40,7 +40,7 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">应用IP</label>
                     <div class="layui-input-block">
-                        <input code="text" class="layui-input" name="applicationIp" id="q_applicationIp" value="">
+                        <input code="text" class="layui-input" name="ip" id="q_ip" value="">
                     </div>
                 </div>
                 <div class="layui-inline">
@@ -66,13 +66,13 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">索引组</label>
                     <div class="layui-input-block">
-                        <input code="text" class="layui-input" name="dataGroupName" id="data_group_name" value="">
+                        <input code="text" class="layui-input" name="groupKeyNameName" id="data_group_name" value="">
                     </div>
                 </div>
                 <div class="layui-inline">
                     <label class="layui-form-label">索引键</label>
                     <div class="layui-input-block">
-                        <input code="text" class="layui-input" name="dataGroupKey" id="data_group_key" value="">
+                        <input code="text" class="layui-input" name="groupKeyName" id="data_group_key" value="">
                     </div>
                 </div>
                 <div class="layui-inline">
@@ -105,6 +105,19 @@
                     </div>
                 </div>
             </div>
+            <!--            <div class="layui-col-xs6 layui-col-md12">-->
+            <!--                <label class="layui-form-label">请求关键字</label>-->
+            <!--                <div class="layui-input-block">-->
+            <!--                    <input code="text" class="layui-input" name="jsonContent" id="jsonContent" value=""-->
+            <!--                           alt="请搜索请求关键字">-->
+            <!--                </div>-->
+            <!--            </div>-->
+            <div class="layui-form-item">
+                <label class="layui-form-label">请求关键字</label>
+                <div class="layui-input-block">
+                    <input code="text" class="layui-input " name="jsonContent" id="jsonContent" value="" alt="请搜索请求关键字" style="width: 90%">
+                </div>
+            </div>
             <div class="layui-form-item">
                 <div class="layui-col-xs6 layui-col-md12 " style="text-align: center">
                     <a class="layui-btn" id="q_submit" lay-submit="" lay-filter="submit_from">查询</a>
@@ -140,10 +153,10 @@
                 $(resultSet).each(function (index, obj) {
                     var data = {};
                     data["应用名称"] = obj.applicationName;
-                    data["应用ip"] = obj.applicationIp + "";
+                    data["应用ip"] = obj.ip + "";
                     data["日志"] = catUrl + obj.logId;
                     data["执行状态"] = elab_common.getConfigTypeText("common_status", obj.status);
-                    data["创建时间"] = elab_common.longConvertDateTime(obj.createdTime);
+                    data["创建时间"] = elab_common.longConvertDateTime(obj.createDate);
                     data["请求时长"] = obj.requestTime;
                     resultJson[index] = data;
                 })
@@ -191,7 +204,7 @@
                 field: 'applicationName', title: '应用名称', width: 170
             }
             , {
-                field: 'applicationIp', title: '应用服务器地址', width: 80
+                field: 'ip', title: '应用服务器地址', width: 80
             }
             , {
                 field: 'mqType', title: '消息类型', width: 80, hide: true
@@ -206,9 +219,9 @@
             }, {
                 field: 'msgId', title: '消息编号'
             }, {
-                field: 'dataGroupName', title: '索引组'
+                field: 'groupName', title: '索引组'
             }, {
-                field: 'dataGroupKey', title: '索引键'
+                field: 'groupKeyName', title: '索引键'
             }, {
                 field: 'dataId', title: '索引编号', width: 100
             }, {
@@ -255,8 +268,8 @@
                 }
             }
             , {
-                field: 'createdTime', title: '创建时间', width: 160, templet: function (res) {
-                    return '<em>' + elab_common.longConvertDateTime(res.createdTime) + '</em>'
+                field: 'createDate', title: '创建时间', width: 160, templet: function (res) {
+                    return '<em>' + elab_common.longConvertDateTime(res.createDate) + '</em>'
                 }
             }
             , {

+ 13 - 7
jay-monitor-data-server/src/main/resources/templates/trace/urlList.html

@@ -54,13 +54,13 @@
                 <div class="layui-inline">
                     <label class="layui-form-label">集团编号</label>
                     <div class="layui-input-block">
-                        <input code="text" class="layui-input" name="dataGroupName" id="data_group_name" value="">
+                        <input code="text" class="layui-input" name="groupKeyNameName" id="data_group_name" value="">
                     </div>
                 </div>
                 <div class="layui-inline">
                     <label class="layui-form-label">手机号</label>
                     <div class="layui-input-block">
-                        <input code="text" class="layui-input" name="dataGroupKey" id="data_group_key" value="">
+                        <input code="text" class="layui-input" name="groupKeyName" id="data_group_key" value="">
                     </div>
                 </div>
                 <div class="layui-inline">
@@ -84,6 +84,12 @@
                     </div>
                 </div>
             </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">请求关键字</label>
+                <div class="layui-input-block">
+                    <input code="text" class="layui-input " name="jsonContent" id="jsonContent" value="" alt="请搜索请求关键字" style="width: 90%">
+                </div>
+            </div>
             <div class="layui-form-item">
                 <div class="layui-col-xs6 layui-col-md12 " style="text-align: center">
                     <a class="layui-btn" id="q_submit" lay-submit="" lay-filter="submit_from">查询</a>
@@ -121,7 +127,7 @@
                 field: 'applicationName', title: '应用名称'
             }
             , {
-                field: 'applicationIp', title: '应用ip'
+                field: 'ip', title: '应用ip'
             }
             , {
                 field: 'url', title: '请求路径'
@@ -132,9 +138,9 @@
             , {
                 field: 'clientIp', title: '客户端ip'
             }, {
-                field: 'dataGroupName', title: '集团编号'
+                field: 'groupName', title: '集团编号'
             }, {
-                field: 'dataGroupKey', title: '手机号'
+                field: 'groupKeyName', title: '手机号'
             }, {
                 field: 'dataId', title: 'token'
             }, {
@@ -162,8 +168,8 @@
                 }
             }
             , {
-                field: 'createdTime', title: '创建时间', width: 160, templet: function (res) {
-                    return '<em>' + elab_common.longConvertDateTime(res.createdTime) + '</em>'
+                field: 'createDate', title: '创建时间', width: 160, templet: function (res) {
+                    return '<em>' + elab_common.longConvertDateTime(res.createDate) + '</em>'
                 }
             }
             , {

+ 16 - 2
jay-monitor-data-server/src/test/java/com/jay/monitor/data/server/store/es/ElasticMQStoreProcessTest.java

@@ -6,8 +6,9 @@ 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 com.jay.monitor.data.server.models.entity.es.JayMonitorMQIndex;
+import com.jay.monitor.data.server.utils.JayDataUtils;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.elasticsearch.action.bulk.BulkResponse;
@@ -27,6 +28,8 @@ 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 org.zxp.esclientrhl.util.IndexTools;
+import org.zxp.esclientrhl.util.MetaData;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
@@ -34,7 +37,7 @@ import java.util.Date;
 import java.util.List;
 
 @RunWith(SpringRunner.class)
-@SpringBootTest(classes = {BeanConfig.class, ElasticSearchBeanConfig.class})
+@SpringBootTest(classes = {ElasticSearchBeanConfig.class})
 @EnableESTools(basePackages = "com.jay.monitor.data.server.store.es")
 public class ElasticMQStoreProcessTest {
     @Autowired
@@ -53,6 +56,17 @@ public class ElasticMQStoreProcessTest {
         insertMusic("97773");
     }
 
+    @Test
+    public void searchMQEs() throws Exception {
+        JayMonitorMQIndex mqIndex = new JayMonitorMQIndex();
+        mqIndex.setJsonContent("1221");
+
+        MetaData index = IndexTools.getIndexType(JayMonitorMQIndex.class);
+        List<JayMonitorMQIndex> music = this.elasticSearchPartition.searchPartition(JayDataUtils.getTableName(index.getIndexname(),"210319"), mqIndex);
+        System.out.println(music);
+
+    }
+
     /**
      * 查询单条数据的用例
      *