liukx vor 4 Jahren
Ursprung
Commit
00297861a9
21 geänderte Dateien mit 357 neuen und 414 gelöschten Zeilen
  1. 33 0
      jay-monitor-data-client/README.md
  2. 6 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/anno/ESSearch.java
  3. 26 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/TraceConsoleController.java
  4. 4 3
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/AlertRuleEnums.java
  5. 1 4
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorMQIndex.java
  6. 0 5
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorSQLIndex.java
  7. 1 5
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorUrlIndex.java
  8. 11 118
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/MQRequest.java
  9. 42 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PageRequest.java
  10. 3 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PartitionRequest.java
  11. 16 142
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/SQLRequest.java
  12. 128 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/SearchFiledRequest.java
  13. 0 121
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/URLRequest.java
  14. 1 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/report/alert/rule/RequestTimeAlertRule.java
  15. 2 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractTraceElasticSearch.java
  16. 1 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlSQLSearchProcess.java
  17. 22 3
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/ESUtils.java
  18. 4 3
      jay-monitor-data-server/src/main/resources/static/js/elab-common.js
  19. 24 4
      jay-monitor-data-server/src/main/resources/templates/trace/mqList.html
  20. 15 0
      jay-monitor-data-server/src/main/resources/templates/trace/sqlList.html
  21. 17 0
      jay-monitor-data-server/src/main/resources/templates/trace/urlList.html

+ 33 - 0
jay-monitor-data-client/README.md

@@ -99,3 +99,36 @@ public class DefaultParamsGenerate implements ParamsGenerate {
 
 服务端会根据该类型找对应的处理器。
 
+
+# 数据依赖的问题
+```xml
+
+<dependency>
+	<groupId>io.reactivex</groupId>
+	<artifactId>rxnetty</artifactId>
+	<version>0.4.20</version>
+	<scope>runtime</scope>
+	<exclusions>
+		<exclusion>
+			<artifactId>netty-common</artifactId>
+			<groupId>io.netty</groupId>
+		</exclusion>
+	</exclusions>
+</dependency>
+<dependency>
+	<groupId>com.elab.marketing</groupId>
+	<artifactId>elab-marketing-core</artifactId>
+	<version>1.0.0</version>
+	<exclusions>
+		<exclusion>
+			<artifactId>rxnetty</artifactId>
+			<groupId>io.reactivex</groupId>
+		</exclusion>
+	</exclusions>
+</dependency>
+<dependency>
+	<groupId>io.netty</groupId>
+	<artifactId>netty-all</artifactId>
+	<version>4.1.5.Final</version>
+</dependency>
+```

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

@@ -11,6 +11,12 @@ import java.lang.annotation.Target;
 @Retention(RetentionPolicy.RUNTIME)
 public @interface ESSearch {
 
+    /**
+     * 字段名称
+     * @return
+     */
+    String fieldName() default "";
+
     /**
      * 默认字段的查询类型
      *

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

@@ -1,11 +1,13 @@
 package com.jay.monitor.data.server.controllers;//package com.jay.monitor.data.server.controllers;
 
+import cn.hutool.core.date.DateUtil;
 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.PageRequest;
 import com.jay.monitor.data.server.models.request.trace.SQLRequest;
 import com.jay.monitor.data.server.models.request.trace.URLRequest;
 import com.jay.monitor.data.server.models.response.trace.SQLTraceResponse;
@@ -13,6 +15,7 @@ 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.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -77,16 +80,36 @@ public class TraceConsoleController {
     @ResponseBody
     public PageResponseModel mqNodeId(@RequestBody MQRequest request) throws Exception {
         String date = DataUtils.parseDayString(request.getDate());
+
+        formatDate(request);
+
         // 将参数对应的全部匹配赋值
         PageResponseModel pageResponseModel = tranceJsonManager
             .searchDataByList(MsgTypeEnums.MQ, date, request.getPageNo(), request.getPageSize(), request);
         return pageResponseModel;
     }
 
+    private void formatDate(PageRequest request) {
+        String day = DateUtil.formatDate(request.getDate());
+        String rangTime = request.getRangTime();
+        if (StringUtils.isNotEmpty(rangTime)) {
+            String[] range = rangTime.split(" # ");
+            String startDate = range[0];
+            String endDate = range[1];
+            String s = day + " " + startDate;
+            String e = day + " " + endDate;
+            request.setStartDate(DateUtil.parseDateTime(s).toJdkDate());
+            request.setEndDate(DateUtil.parseDateTime(e).toJdkDate());
+        }
+    }
+
     @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());
+
+        formatDate(request);
+
         // 将参数对应的全部匹配赋值
         PageResponseModel pageResponseModel = tranceJsonManager
             .searchDataByList(MsgTypeEnums.URL, date, request.getPageNo(), request.getPageSize(), request);
@@ -102,6 +125,9 @@ public class TraceConsoleController {
 
     private PageResponseModel getDataPageList(MsgTypeEnums msgTypeEnums, SQLRequest request) throws Exception {
         String date = DataUtils.parseDayString(request.getDate());
+
+        formatDate(request);
+
         // 将参数对应的全部匹配赋值
         PageResponseModel pageResponseModel =
             tranceJsonManager.searchDataByList(msgTypeEnums, date, request.getPageNo(), request.getPageSize(), request);

+ 4 - 3
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/AlertRuleEnums.java

@@ -6,8 +6,9 @@ package com.jay.monitor.data.server.enums;
  * @Author liukaixiong
  * @Date 2021/1/14 13:47
  */
-public enum  AlertRuleEnums {
-    REQUEST_TIME,STATUS,AFFECTED_ROW
-
+public enum AlertRuleEnums {
+    REQUEST_TIME,
+    STATUS,
+    AFFECTED_ROW
 
 }

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

@@ -1,8 +1,6 @@
 package com.jay.monitor.data.server.models.entity.es;
 
 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.ESID;
 import org.zxp.esclientrhl.annotation.ESMetaData;
 
@@ -64,9 +62,8 @@ public class JayMonitorMQIndex {
 
     private String logId;
 
-    @ESSearch(value = ESQuerySyntax.like)
     private String jsonContent;
-    @ESSearch(value = ESQuerySyntax.gt)
+
     private Long requestTime;
 
     private String errorMessage;

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

@@ -1,7 +1,5 @@
 package com.jay.monitor.data.server.models.entity.es;
 
-import com.jay.monitor.data.server.anno.ESSearch;
-import com.jay.monitor.data.server.enums.ESQuerySyntax;
 import org.zxp.esclientrhl.annotation.ESID;
 import org.zxp.esclientrhl.annotation.ESMetaData;
 
@@ -25,13 +23,10 @@ public class JayMonitorSQLIndex {
 
     private String logId;
 
-    @ESSearch(value = ESQuerySyntax.gt)
     private Integer affectedRows;
 
-    @ESSearch(value = ESQuerySyntax.like)
     private String jsonContent;
 
-    @ESSearch(value = ESQuerySyntax.gt)
     private Long requestTime;
 
     /**

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

@@ -1,19 +1,15 @@
 package com.jay.monitor.data.server.models.entity.es;
 
-import com.jay.monitor.data.server.anno.ESSearch;
-import com.jay.monitor.data.server.enums.ESQuerySyntax;
 import org.zxp.esclientrhl.annotation.ESID;
 import org.zxp.esclientrhl.annotation.ESMetaData;
 
 import java.util.Date;
 
-@ESMetaData(indexName = "jay_monitor_url", indexType = "mq", number_of_shards = 5, number_of_replicas = 0)
+@ESMetaData(indexName = "jay_monitor_url", indexType = "mq", number_of_shards = 5, number_of_replicas = 0,printLog = true)
 public class JayMonitorUrlIndex {
 
-    @ESSearch(value = ESQuerySyntax.like)
     private String jsonContent;
 
-    @ESSearch(value = ESQuerySyntax.gt)
     private Long requestTime;
 
     /**

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

@@ -1,5 +1,7 @@
 package com.jay.monitor.data.server.models.request.trace;
 
+import com.jay.monitor.data.server.anno.ESSearch;
+
 import javax.persistence.Column;
 import java.util.Date;
 
@@ -17,112 +19,60 @@ public class MQRequest extends PageRequest {
     @Column
     private Integer id;
 
-    /**
-     * 应用名称
-     */
-    private String applicationName;
-
-    /**
-     * 应用地址
-     */
-    private String applicationIp;
-
     /**
      * mq类型
      */
+    @ESSearch
     private String mqType;
 
     /**
      * 执行类型  producer/consumer
      */
+    @ESSearch
     private String invokeType;
 
     /**
      * 订阅主题
      */
+    @ESSearch
     private String topic;
 
     /**
      * 分区名称
      */
+    @ESSearch
     private String partitionName;
 
     /**
      * 消息编号
      */
+    @ESSearch
     private String msgId;
 
-    /**
-     * 应用监控组
-     */
-    private String groupName;
-
-    /**
-     * 应用监控key
-     */
-    private String groupKeyName;
-
-    /**
-     * 数据编号
-     */
-    private String dataId;
-
     /**
      * 根日志编号
      */
+    @ESSearch
     private String rootLogId;
 
     /**
      * 上级日志编号
      */
+    @ESSearch
     private String parentLogId;
 
     /**
      * 日志编号
      */
+    @ESSearch
     private String logId;
 
-    /**
-     * 状态1:正常消息 -1异常消息
-     */
-    private Integer status;
-
-    /**
-     * 请求时长
-     */
-    private Long requestTime;
-
     /**
      * 数据来源时间
      */
+    @ESSearch
     private Date sourceTime;
 
-    /**
-     * 时间时间
-     */
-    private Date createdTime;
-
-    /**
-     * 参数内容
-     */
-    private String jsonContent;
-
-    public String getJsonContent() {
-        return jsonContent;
-    }
-
-    public void setJsonContent(String jsonContent) {
-        this.jsonContent = jsonContent;
-    }
-
-    public Long getRequestTime() {
-        return requestTime;
-    }
-
-    public void setRequestTime(Long requestTime) {
-        this.requestTime = requestTime;
-    }
-
     public Integer getId() {
         return id;
     }
@@ -131,22 +81,6 @@ public class MQRequest extends PageRequest {
         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;
     }
@@ -187,23 +121,6 @@ public class MQRequest extends PageRequest {
         this.msgId = msgId;
     }
 
-    public String getGroupName() {
-        return groupName;
-    }
-
-    public void setGroupName(String groupName) {
-        this.groupName = groupName;
-    }
-
-
-    public String getDataId() {
-        return dataId;
-    }
-
-    public void setDataId(String dataId) {
-        this.dataId = dataId;
-    }
-
     public String getRootLogId() {
         return rootLogId;
     }
@@ -228,14 +145,6 @@ public class MQRequest extends PageRequest {
         this.logId = logId;
     }
 
-    public Integer getStatus() {
-        return status;
-    }
-
-    public void setStatus(Integer status) {
-        this.status = status;
-    }
-
     public Date getSourceTime() {
         return sourceTime;
     }
@@ -243,20 +152,4 @@ public class MQRequest extends PageRequest {
     public void setSourceTime(Date sourceTime) {
         this.sourceTime = sourceTime;
     }
-
-    public Date getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Date createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    public String getGroupKeyName() {
-        return groupKeyName;
-    }
-
-    public void setGroupKeyName(String groupKeyName) {
-        this.groupKeyName = groupKeyName;
-    }
 }

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

@@ -1,11 +1,51 @@
 package com.jay.monitor.data.server.models.request.trace;
 
-public class PageRequest extends PartitionRequest {
+import com.jay.monitor.data.server.anno.ESSearch;
+import com.jay.monitor.data.server.enums.ESQuerySyntax;
+import jdk.nashorn.internal.ir.annotations.Ignore;
 
-    private Integer pageSize = 10;
+import java.util.Date;
+
+public class PageRequest extends SearchFiledRequest {
 
+    @Ignore
+    private Integer pageSize = 10;
+    @Ignore
     private Integer pageNo = 1;
 
+    @ESSearch(fieldName = "createDate", value = ESQuerySyntax.gt)
+    private Date startDate;
+
+    @ESSearch(fieldName = "createDate", value = ESQuerySyntax.lt)
+    private Date endDate;
+
+    @Ignore
+    private String rangTime;
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public String getRangTime() {
+        return rangTime;
+    }
+
+    public void setRangTime(String rangTime) {
+        this.rangTime = rangTime;
+    }
+
     public Integer getPageNo() {
         return pageNo;
     }

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

@@ -1,9 +1,12 @@
 package com.jay.monitor.data.server.models.request.trace;
 
+import jdk.nashorn.internal.ir.annotations.Ignore;
+
 import java.util.Date;
 
 public class PartitionRequest {
 
+    @Ignore
     private Date date;
 
     public Date getDate() {

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

@@ -1,6 +1,7 @@
 package com.jay.monitor.data.server.models.request.trace;
 
-import java.util.Date;
+import com.jay.monitor.data.server.anno.ESSearch;
+import com.jay.monitor.data.server.enums.ESQuerySyntax;
 
 /**
  * @Module mq请求参数
@@ -15,16 +16,6 @@ public class SQLRequest extends PageRequest {
      */
     private Integer id;
 
-    /**
-     * 应用名称
-     */
-    private String applicationName;
-
-    /**
-     * 应用地址
-     */
-    private String ip;
-
     /**
      * 执行命令
      */
@@ -45,73 +36,30 @@ public class SQLRequest extends PageRequest {
     /**
      * 影响行数
      */
+    @ESSearch(value = ESQuerySyntax.gt)
     private Integer affectedRows;
+
     /**
      * 结果返回
      */
     private Object result;
 
-    /**
-     * 应用监控组
-     */
-    private String groupName;
-
-    /**
-     * 应用监控key
-     */
-    private String groupKeyName;
-
-    /**
-     * 数据编号
-     */
-    private String dataId;
-
     /**
      * 根日志编号
      */
     private String rootLogId;
 
-    /**
-     * 上级日志编号
-     */
-    private String parentLogId;
-
     /**
      * 日志编号
      */
     private String logId;
 
-    /**
-     * 状态1:正常消息 -1异常消息
-     */
-    private Integer status;
-
-    /**
-     * 请求时长
-     */
-    private Long requestTime;
-
-    /**
-     * 时间时间
-     */
-    private Date createdTime;
-
-    private String jsonContent;
-
-    public String getJsonContent() {
-        return jsonContent;
-    }
-
-    public void setJsonContent(String jsonContent) {
-        this.jsonContent = jsonContent;
-    }
-
-    public Integer getAffectedRows() {
-        return affectedRows;
+    public Integer getId() {
+        return id;
     }
 
-    public void setAffectedRows(Integer affectedRows) {
-        this.affectedRows = affectedRows;
+    public void setId(Integer id) {
+        this.id = id;
     }
 
     public String getCommandType() {
@@ -146,54 +94,20 @@ public class SQLRequest extends PageRequest {
         this.sql = sql;
     }
 
-    public Object getResult() {
-        return result;
-    }
-
-    public void setResult(Object result) {
-        this.result = result;
-    }
-
-    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 getIp() {
-        return ip;
+    public Integer getAffectedRows() {
+        return affectedRows;
     }
 
-    public void setIp(String ip) {
-        this.ip = ip;
+    public void setAffectedRows(Integer affectedRows) {
+        this.affectedRows = affectedRows;
     }
 
-    public String getDataId() {
-        return dataId;
+    public Object getResult() {
+        return result;
     }
 
-    public void setDataId(String dataId) {
-        this.dataId = dataId;
+    public void setResult(Object result) {
+        this.result = result;
     }
 
     public String getRootLogId() {
@@ -204,14 +118,6 @@ public class SQLRequest extends PageRequest {
         this.rootLogId = rootLogId;
     }
 
-    public String getParentLogId() {
-        return parentLogId;
-    }
-
-    public void setParentLogId(String parentLogId) {
-        this.parentLogId = parentLogId;
-    }
-
     public String getLogId() {
         return logId;
     }
@@ -219,36 +125,4 @@ public class SQLRequest extends PageRequest {
     public void setLogId(String logId) {
         this.logId = logId;
     }
-
-    public Integer getStatus() {
-        return status;
-    }
-
-    public void setStatus(Integer status) {
-        this.status = status;
-    }
-
-    public Date getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Date createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    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;
-    }
 }

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

@@ -0,0 +1,128 @@
+package com.jay.monitor.data.server.models.request.trace;
+
+import com.jay.monitor.data.server.anno.ESSearch;
+import com.jay.monitor.data.server.enums.ESQuerySyntax;
+
+import java.util.Date;
+
+public class SearchFiledRequest extends PartitionRequest{
+    /**
+     * 请求时长
+     */
+    @ESSearch(value = ESQuerySyntax.gt)
+    private Long requestTime;
+
+    /**
+     * 创建时间
+     */
+    private Date createdTime;
+
+    /**
+     * 参数内容
+     */
+    @ESSearch(value = ESQuerySyntax.like)
+    private String jsonContent;
+
+    /**
+     * 状态: 客户端返回的状态码
+     */
+    private Integer status;
+
+    /**
+     * 应用监控组
+     */
+    private String groupName;
+
+    /**
+     * 应用监控key
+     */
+    private String groupKeyName;
+
+    /**
+     * 数据编号
+     */
+    private String dataId;
+
+    /**
+     * 应用名称
+     */
+    private String applicationName;
+
+    /**
+     * 应用地址
+     */
+    @ESSearch(fieldName = "ip")
+    private String applicationIp;
+
+    public Long getRequestTime() {
+        return requestTime;
+    }
+
+    public void setRequestTime(Long requestTime) {
+        this.requestTime = requestTime;
+    }
+
+    public Date getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public String getJsonContent() {
+        return jsonContent;
+    }
+
+    public void setJsonContent(String jsonContent) {
+        this.jsonContent = jsonContent;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    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 getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationIp() {
+        return applicationIp;
+    }
+
+    public void setApplicationIp(String applicationIp) {
+        this.applicationIp = applicationIp;
+    }
+}

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

@@ -3,8 +3,6 @@ package com.jay.monitor.data.server.models.request.trace;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 
-import java.util.Date;
-
 /**
  * @Module 请求参数
  * @Description url请求的参数
@@ -19,16 +17,6 @@ public class URLRequest extends PageRequest {
     @TableId(type = IdType.AUTO)
     private Integer id;
 
-    /**
-     * 应用名称
-     */
-    private String applicationName;
-
-    /**
-     * 应用地址
-     */
-    private String applicationIp;
-
     /**
      * 请求路径
      */
@@ -44,56 +32,11 @@ public class URLRequest extends PageRequest {
      */
     private String clientIp;
 
-    /**
-     * 应用监控组
-     */
-    private String groupName;
-
-    /**
-     * 应用监控key
-     */
-    private String groupKeyName;
-
-    /**
-     * 数据编号
-     */
-    private String dataId;
-
-    /**
-     * 状态: 客户端返回的状态码
-     */
-    private Integer status;
-
     /**
      * 日志编号
      */
     private String logId;
 
-    /**
-     * 请求时长
-     */
-    private Integer requestTime;
-
-    /**
-     * 创建时间
-     */
-    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() {
         return id;
     }
@@ -102,22 +45,6 @@ public class URLRequest extends PageRequest {
         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;
     }
@@ -142,22 +69,6 @@ public class URLRequest extends PageRequest {
         this.clientIp = clientIp;
     }
 
-    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;
     }
@@ -165,36 +76,4 @@ public class URLRequest extends PageRequest {
     public void setLogId(String logId) {
         this.logId = logId;
     }
-
-    public Integer getRequestTime() {
-        return requestTime;
-    }
-
-    public void setRequestTime(Integer requestTime) {
-        this.requestTime = requestTime;
-    }
-
-    public Date getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Date createdTime) {
-        this.createdTime = createdTime;
-    }
-
-    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;
-    }
 }

+ 1 - 1
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/report/alert/rule/RequestTimeAlertRule.java

@@ -41,7 +41,7 @@ public class RequestTimeAlertRule implements AlertRule {
                 AlertRuleConfigModel alertConfigModel = configStoreManager.getAlertRuleConfigModel(type);
                 if (alertConfigModel != null) {
                     Integer maxTime = alertConfigModel.getMaxTime();
-                    if (requestTime >= maxTime) {
+                    if (maxTime != null && requestTime >= maxTime) {
                         return true;
                     }
                 }

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

@@ -36,7 +36,7 @@ public abstract class AbstractTraceElasticSearch<T, R, I> extends TraceSearchPro
 
     public abstract List<R> builderResponseList(List<I> list);
 
-    protected QueryBuilder builderQuery(I query) throws Exception {
+    protected QueryBuilder builderQuery(T query) throws Exception {
         return ESUtils.beanToQueryBuilder(query);
     }
 
@@ -48,7 +48,7 @@ public abstract class AbstractTraceElasticSearch<T, R, I> extends TraceSearchPro
         String partitionIndexName = JayDataUtils.getTableName(indexName, date);
         Object indexEntity = getIndexClass().newInstance();
         BeanUtils.copyProperties(query, indexEntity);
-        QueryBuilder queryBuilder = builderQuery((I)indexEntity);
+        QueryBuilder queryBuilder = builderQuery(query);
         PageList pageList = elasticSearchPartition
             .searchPartitionPage(partitionIndexName, queryBuilder, pageNo, pageSize, getIndexClass(),
                 new Sort.Order[] {new Sort.Order(SortOrder.DESC, "createDate")});

+ 1 - 1
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlSQLSearchProcess.java

@@ -33,7 +33,7 @@ public class MysqlSQLSearchProcess extends AbstractMysqlSearchProcess<JayMonitor
         BeanUtils.copyProperties(query, jayMonitorSql);
         jayMonitorSql.setDataGroupKey(query.getGroupKeyName());
         jayMonitorSql.setDataGroupName(query.getGroupName());
-        jayMonitorSql.setApplicationIp(query.getIp());
+        jayMonitorSql.setApplicationIp(query.getApplicationIp());
         return jayMonitorSql;
     }
 

+ 22 - 3
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/ESUtils.java

@@ -4,8 +4,11 @@ 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 jdk.nashorn.internal.ir.annotations.Ignore;
 import org.apache.commons.lang3.reflect.FieldUtils;
-import org.elasticsearch.index.query.*;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
 import org.springframework.core.annotation.AnnotationUtils;
 import org.springframework.util.ObjectUtils;
 
@@ -29,11 +32,27 @@ public class ESUtils {
             Field declaredField = declaredFields[i];
             String name = declaredField.getName();
             Object value = BeanUtil.getProperty(t, name);
-            if (value != null && !ObjectUtils.isEmpty(value) && typeList.contains(value.getClass())) {
+            //&& typeList.contains(value.getClass())
+            if (value != null && !ObjectUtils.isEmpty(value)) {
                 ESSearch esSearch = AnnotationUtils.findAnnotation(declaredField, ESSearch.class);
                 QueryBuilder queryBuilder = null;
+
+                if (esSearch == null && AnnotationUtils.findAnnotation(declaredField, Ignore.class) != null) {
+                    continue;
+                }
+
+                if(value instanceof Date){
+                    value = ((Date)value).getTime();
+                }
+
+                if (esSearch != null) {
+                    name = DataUtils.getDefaultValue(esSearch.fieldName(), name);
+                }
+
                 if (esSearch == null || esSearch.value() == ESQuerySyntax.eq) {
-                    name = name + ".keyword";
+                    if (value instanceof String) {
+                        name = name + ".keyword";
+                    }
                     queryBuilder = QueryBuilders.matchQuery(name, value);
                 } else if (esSearch.value() == ESQuerySyntax.gt) {
                     queryBuilder = QueryBuilders.rangeQuery(name).gt(value);

+ 4 - 3
jay-monitor-data-server/src/main/resources/static/js/elab-common.js

@@ -252,15 +252,16 @@ var elab_common = function () {
             , cellMinWidth: 80
             , contentType: "application/json"
             , page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
-                layout: ['count', 'limit', 'pageSize', 'prev', 'page', 'next', 'first', 'last', 'skip'] //自定义分页布局
+                layout: ['limit', 'count', 'prev', 'page', 'next', 'skip']//自定义分页布局
                 , curr: 1 //设定初始在第 5 页
                 , groups: 5 //只显示 1 个连续页码
+                ,first: false //不显示首页
+                ,last: false //不显示尾页
             }, parseData: function (res) { //res 即为原始返回的数据
-                debugger;
                 return {
                     "code": res.success == true ? 0 : 500, //解析接口状态
                     "msg": res.message, //解析提示文本
-                    "count": res.pageModel.count, //解析数据长度
+                    "count": res.pageModel.total, //解析数据长度
                     "data": res.pageModel.resultSet //解析数据列表
                 };
             }, request: {

+ 24 - 4
jay-monitor-data-server/src/main/resources/templates/trace/mqList.html

@@ -28,9 +28,17 @@
                     <label class="layui-form-label">日期</label>
                     <div class="layui-input-block">
                         <input type="text" required="true" class="layui-input" name="date" id="d_date"
-                               placeholder="yyMMdd">
+                               placeholder="yyMMdd HH:mm:ss">
                     </div>
                 </div>
+                <div class="layui-inline">
+                    <label class="layui-form-label">时间范围</label>
+                    <div class="layui-input-block">
+                        <input type="text" required="true" class="layui-input" name="rangTime" id="d_s_date"
+                               placeholder="HH:mm:ss">
+                    </div>
+                </div>
+
                 <div class="layui-inline">
                     <label class="layui-form-label">项目名称</label>
                     <div class="layui-input-block">
@@ -115,7 +123,8 @@
             <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%">
+                    <input code="text" class="layui-input " name="jsonContent" id="jsonContent" value="" alt="请搜索请求关键字"
+                           style="width: 90%">
                 </div>
             </div>
             <div class="layui-form-item">
@@ -286,7 +295,7 @@
             debugger;
             if ("findDetail" == event) {
                 // elab_common.getReq("/api/log/mq?id=" + obj.data.id, null, function (data) {
-                    showJson(JSON.parse(obj.data.jsonContent));
+                showJson(JSON.parse(obj.data.jsonContent));
                 // })
             }
         });
@@ -296,14 +305,17 @@
         });
 
         form.on('submit(submit_from)', function (data) {
+            debugger;
             //执行重载
             table.reload('tableList', {
                 page: {
                     curr: 1 //重新从第 1 页开始
+                    ,groups: 10
                 }
                 , where: data.field
 
             });
+
             return false;
         });
 
@@ -311,11 +323,19 @@
             elem: '#d_date'
             , format: 'yyyy-MM-dd'
             , isInitValue: true
-            , min: -7
+            , min: -30
             , max: 0
             , value: new Date()
         });
 
+        laydate.render({
+            elem: '#d_s_date'
+            , type: 'time'
+            , isInitValue: true
+            , range: ['#']
+            , value: '00:00:00 # 23:59:59'
+        });
+
         init();
 
         function init() {

+ 15 - 0
jay-monitor-data-server/src/main/resources/templates/trace/sqlList.html

@@ -31,6 +31,13 @@
                                placeholder="yyMMdd">
                     </div>
                 </div>
+                <div class="layui-inline">
+                    <label class="layui-form-label">时间范围</label>
+                    <div class="layui-input-block">
+                        <input type="text" required="true" class="layui-input" name="rangTime" id="d_s_date"
+                               placeholder="HH:mm:ss">
+                    </div>
+                </div>
                 <div class="layui-inline">
                     <label class="layui-form-label">项目名称</label>
                     <div class="layui-input-block">
@@ -299,6 +306,14 @@
             , value: new Date()
         });
 
+        laydate.render({
+            elem: '#d_s_date'
+            , type: 'time'
+            , isInitValue: true
+            , range: ['#']
+            , value: '00:00:00 # 23:59:59'
+        });
+
         init();
 
         function init() {

+ 17 - 0
jay-monitor-data-server/src/main/resources/templates/trace/urlList.html

@@ -31,6 +31,15 @@
                                placeholder="yyMMdd">
                     </div>
                 </div>
+
+                <div class="layui-inline">
+                    <label class="layui-form-label">时间范围</label>
+                    <div class="layui-input-block">
+                        <input type="text" required="true" class="layui-input" name="rangTime" id="d_s_date"
+                               placeholder="HH:mm:ss">
+                    </div>
+                </div>
+
                 <div class="layui-inline">
                     <label class="layui-form-label">项目名称</label>
                     <div class="layui-input-block">
@@ -240,6 +249,14 @@
             , value: new Date()
         });
 
+        laydate.render({
+            elem: '#d_s_date'
+            , type: 'time'
+            , isInitValue: true
+            , range: ['#']
+            , value: '00:00:00 # 23:59:59'
+        });
+
         init();
 
         function init() {