浏览代码

Merge branch 'feature_mysqlToElasticSearch' of elabFrameworkCore/jay-monitor-data-web into master

wangs 4 年之前
父节点
当前提交
cb62e6e980
共有 37 个文件被更改,包括 706 次插入446 次删除
  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. 2 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/BeanConfig.java
  4. 22 9
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/MvcConfigBean.java
  5. 47 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/props/JayServerProperties.java
  6. 45 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/IndexController.java
  7. 26 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/TraceConsoleController.java
  8. 7 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/costs/ServerConstants.java
  9. 4 3
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/AlertRuleEnums.java
  10. 1 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/CommonEnums.java
  11. 59 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/interceptors/LoginHandler.java
  12. 1 4
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorMQIndex.java
  13. 0 5
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorSQLIndex.java
  14. 1 5
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/entity/es/JayMonitorUrlIndex.java
  15. 24 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/login/LoginRequest.java
  16. 11 118
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/MQRequest.java
  17. 42 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PageRequest.java
  18. 3 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/PartitionRequest.java
  19. 16 142
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/SQLRequest.java
  20. 128 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/SearchFiledRequest.java
  21. 0 121
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/models/request/trace/URLRequest.java
  22. 1 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/report/alert/rule/RequestTimeAlertRule.java
  23. 1 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/report/alert/rule/StatusAlertRule.java
  24. 2 2
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/es/AbstractTraceElasticSearch.java
  25. 1 1
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/store/mysql/MysqlSQLSearchProcess.java
  26. 103 0
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/CookiesUtil.java
  27. 22 3
      jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/ESUtils.java
  28. 11 3
      jay-monitor-data-server/src/main/resources/application-com.yml
  29. 1 1
      jay-monitor-data-server/src/main/resources/application-dev.yml
  30. 2 1
      jay-monitor-data-server/src/main/resources/application.yml
  31. 4 3
      jay-monitor-data-server/src/main/resources/static/js/elab-common.js
  32. 3 0
      jay-monitor-data-server/src/main/resources/static/js/elab-service-config.js
  33. 1 1
      jay-monitor-data-server/src/main/resources/templates/index.html
  34. 18 8
      jay-monitor-data-server/src/main/resources/templates/login.html
  35. 24 4
      jay-monitor-data-server/src/main/resources/templates/trace/mqList.html
  36. 16 1
      jay-monitor-data-server/src/main/resources/templates/trace/sqlList.html
  37. 18 1
      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 "";
+
     /**
      * 默认字段的查询类型
      *

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

@@ -4,6 +4,7 @@ import com.alipay.remoting.rpc.protocol.UserProcessor;
 import com.jay.monitor.data.core.enums.MonitorDataConstants;
 import com.jay.monitor.data.server.MonitorDataServer;
 import com.jay.monitor.data.server.config.props.AlertProperties;
+import com.jay.monitor.data.server.config.props.JayServerProperties;
 import com.jay.monitor.data.server.config.props.MonitorProperties;
 import com.jay.monitor.data.server.factory.DataIdFactory;
 import com.jay.monitor.data.server.factory.IdGenerateService;
@@ -34,7 +35,7 @@ import java.util.List;
 //@ComponentScan(basePackages = {"com.jay.monitor.data.server"}, excludeFilters = {
 //        @ComponentScan.Filter(type = FilterType.ANNOTATION, value = {Controller.class, ControllerAdvice.class})
 //})
-@EnableConfigurationProperties({MonitorProperties.class, AlertProperties.class})
+@EnableConfigurationProperties({MonitorProperties.class, AlertProperties.class, JayServerProperties.class})
 @ComponentScan
 public class BeanConfig {
 

+ 22 - 9
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/MvcConfigBean.java

@@ -1,8 +1,12 @@
 package com.jay.monitor.data.server.config;
 
+import com.jay.monitor.data.server.costs.ServerConstants;
+import com.jay.monitor.data.server.interceptors.LoginHandler;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
@@ -15,11 +19,12 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
  **/
 @Configuration
 @EnableWebMvc
-//@EnableSwagger2
 @ComponentScan(basePackages = {"com.jay.monitor.data.server.controllers"})
-//@ConfigurationProperties(prefix = "swagger2")
 public class MvcConfigBean extends WebMvcConfigurerAdapter {
 
+    @Autowired
+    private LoginHandler loginHandler;
+
     @Override
     public void addResourceHandlers(ResourceHandlerRegistry registry) {
         super.addResourceHandlers(registry);
@@ -27,13 +32,21 @@ public class MvcConfigBean extends WebMvcConfigurerAdapter {
         registry.addResourceHandler("/css/**").addResourceLocations("classpath:/static/css/");
         registry.addResourceHandler("/lib/**").addResourceLocations("classpath:/static/lib/");
         registry.addResourceHandler("/fonts/**").addResourceLocations("classpath:/static/fonts/");
+        registry.addResourceHandler("/images/**").addResourceLocations("classpath:/static/images/");
+    }
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(loginHandler).addPathPatterns("/**")
+            .excludePathPatterns(ServerConstants.LOGIN_HTML_PATH, ServerConstants.LOGIN_PATH)
+            .excludePathPatterns("/js/**", "/css/**", "/lib/**", "/fonts/**", "/images/**");
     }
 
-//    @Bean
-//    public TemplateEngine layoutDialect() {
-//        // Or SpringTemplateEngine for Spring
-//        TemplateEngine templateEngine = new TemplateEngine();
-//        templateEngine.addDialect(new LayoutDialect(new GroupingStrategy()));
-//        return templateEngine;
-//    }
+    //    @Bean
+    //    public TemplateEngine layoutDialect() {
+    //        // Or SpringTemplateEngine for Spring
+    //        TemplateEngine templateEngine = new TemplateEngine();
+    //        templateEngine.addDialect(new LayoutDialect(new GroupingStrategy()));
+    //        return templateEngine;
+    //    }
 }

+ 47 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/config/props/JayServerProperties.java

@@ -0,0 +1,47 @@
+package com.jay.monitor.data.server.config.props;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@ConfigurationProperties(prefix = "jay.server")
+public class JayServerProperties {
+
+    private boolean enableLogin = false;
+
+    private String token;
+
+    private String username;
+
+    private String password;
+
+    public boolean isEnableLogin() {
+        return enableLogin;
+    }
+
+    public void setEnableLogin(boolean enableLogin) {
+        this.enableLogin = enableLogin;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+}

+ 45 - 1
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/controllers/IndexController.java

@@ -2,10 +2,20 @@ package com.jay.monitor.data.server.controllers;
 
 import com.alibaba.fastjson.JSONObject;
 import com.cat.file.message.MessageManagerProcess;
+import com.jay.monitor.data.core.model.response.ResponseCommonModel;
+import com.jay.monitor.data.core.utils.ResponseUtils;
+import com.jay.monitor.data.server.config.props.JayServerProperties;
+import com.jay.monitor.data.server.costs.ServerConstants;
+import com.jay.monitor.data.server.enums.CommonEnums;
+import com.jay.monitor.data.server.models.request.login.LoginRequest;
+import com.jay.monitor.data.server.utils.CookiesUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * @author : liukx
  * @describe :首页
@@ -15,6 +25,8 @@ import org.springframework.web.bind.annotation.*;
 @RequestMapping(value = "/")
 public class IndexController {
     final static private String page = "/";
+    @Autowired
+    private JayServerProperties serverProperties;
 
     @Autowired
     private MessageManagerProcess messageManagerProcess;
@@ -24,7 +36,39 @@ public class IndexController {
         return page + "index";
     }
 
-    @RequestMapping(value = "/test", method = {RequestMethod.DELETE, RequestMethod.PUT}, produces = "application/json; charset=utf-8")
+    @RequestMapping(value = "/login.html", method = RequestMethod.GET)
+    public String login() throws Exception {
+        return page + "login";
+    }
+
+    @RequestMapping(value = "/loginOut.html", method = RequestMethod.GET)
+    public String loginOut(HttpServletRequest request, HttpServletResponse response) throws Exception {
+        CookiesUtil.deleteCookieByName(request, response, ServerConstants.USER_SESSION_KEY);
+        return "redirect:/login.html";
+    }
+
+    @RequestMapping(value = "/login", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public ResponseCommonModel loginService(HttpServletResponse response, @RequestBody LoginRequest loginRequest)
+        throws Exception {
+        String username = serverProperties.getUsername();
+        String password = serverProperties.getPassword();
+        String token = serverProperties.getToken();
+
+        String un = loginRequest.getUsername();
+        String pwd = loginRequest.getPassword();
+
+        if (username.equals(un) && password.equals(pwd)) {
+            CookiesUtil.setCookie(response, ServerConstants.USER_SESSION_KEY, token, -1);
+            return ResponseUtils.trues();
+        } else {
+            return ResponseUtils.falses(CommonEnums.LOGIN_ERROR);
+        }
+
+    }
+
+    @RequestMapping(value = "/test", method = {RequestMethod.DELETE,
+        RequestMethod.PUT}, produces = "application/json; charset=utf-8")
     @ResponseBody
     public JSONObject test(@RequestBody JSONObject jsonObject) throws Exception {
         return jsonObject;

+ 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);

+ 7 - 2
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/costs/ServerConstants.java

@@ -12,7 +12,12 @@ public class ServerConstants {
 
     public static int ERROR_STATUS = -1;
 
-    public static String ERROR_LOG_ID ="errorLogId";
+    public static String ERROR_LOG_ID = "errorLogId";
 
-    public static String JSON_LOG_ID ="jsonLogId";
+    public static String JSON_LOG_ID = "jsonLogId";
+
+    public static String USER_SESSION_KEY = "JAY_TOKEN";
+
+    public static String LOGIN_HTML_PATH = "/login.html";
+    public static String LOGIN_PATH = "/login";
 }

+ 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 - 2
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/enums/CommonEnums.java

@@ -1,6 +1,5 @@
 package com.jay.monitor.data.server.enums;
 
-
 import com.jay.monitor.data.core.enums.EnumService;
 
 /**
@@ -11,11 +10,11 @@ import com.jay.monitor.data.core.enums.EnumService;
 public enum CommonEnums implements EnumService {
     COMMON_PARAM_ERROR("COMMON.PARAM.ERROR", "参数[%s]错误"),
     COMMON_DATA_NOT_FOUND("COMMON.DATA.NOT.FOUND.ERROR", "数据未找到"),
+    LOGIN_ERROR("LOGIN_ERROR", "帐号或密码错误"),
 
     ROUTE_REQUEST_URL_ERROR("ROUTE.REQUEST.URL.ERROR", "请求的URL异常"),
     ROUTE_EUREKA_APP_ERROR("ROUTE.EUREKA.APP.ERROR", "Eureka找不到应用名称");
 
-
     private final String code;
     private final String message;
 

+ 59 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/interceptors/LoginHandler.java

@@ -0,0 +1,59 @@
+package com.jay.monitor.data.server.interceptors;
+
+import com.jay.monitor.data.server.config.props.JayServerProperties;
+import com.jay.monitor.data.server.costs.ServerConstants;
+import com.jay.monitor.data.server.utils.CookiesUtil;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Component
+public class LoginHandler implements HandlerInterceptor {
+
+    private Logger logger = LoggerFactory.getLogger(LoginHandler.class);
+
+    @Autowired
+    private JayServerProperties serverProperties;
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
+        throws Exception {
+        logger.info(request.getRequestURI());
+
+        if (!serverProperties.isEnableLogin()) {
+            return true;
+        }
+
+        String token = request.getParameter("token");
+
+        String defaultToken = serverProperties.getToken();
+
+        if (defaultToken.equals(token)) {
+            CookiesUtil.setCookie(response, ServerConstants.USER_SESSION_KEY, token, -1);
+            return true;
+        }
+
+        Cookie cookieByName = CookiesUtil.getCookieByName(request, ServerConstants.USER_SESSION_KEY);
+
+        if (cookieByName != null && defaultToken.equals(cookieByName.getValue())) {
+            return true;
+        }
+
+        String user = (String)request.getSession().getAttribute(ServerConstants.USER_SESSION_KEY);
+
+        if (StringUtils.isEmpty(user)) {
+            response.sendRedirect(ServerConstants.LOGIN_HTML_PATH);
+            logger.info("token 校验失败.");
+            return false;
+        }
+
+        return true;
+    }
+}

+ 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;
 
     /**

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

@@ -0,0 +1,24 @@
+package com.jay.monitor.data.server.models.request.login;
+
+public class LoginRequest {
+
+    private String username;
+
+    private String password;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+}

+ 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;
                     }
                 }

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

@@ -29,7 +29,7 @@ public class StatusAlertRule implements AlertRule {
         Integer status = baseDTO.getStatus();
         AlertRuleConfigModel alertConfigModel = configStoreManager.getAlertRuleConfigModel(baseDTO.getType());
         if (alertConfigModel != null) {
-            if (alertConfigModel.getStatusList().contains(status)) {
+            if (alertConfigModel.getStatusList() != null && alertConfigModel.getStatusList().contains(status)) {
                 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;
     }
 

+ 103 - 0
jay-monitor-data-server/src/main/java/com/jay/monitor/data/server/utils/CookiesUtil.java

@@ -0,0 +1,103 @@
+package com.jay.monitor.data.server.utils;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @version V1.0
+ * @Title: cookis的相关操作
+ * @Description:
+ * @date: 2018-11-02 15:56
+ */
+public class CookiesUtil {
+
+    /**
+     * 根据名字获取cookie
+     *
+     * @param request
+     * @param name    cookie名字
+     * @return Cookie
+     */
+    public static Cookie getCookieByName(HttpServletRequest request, String name) {
+        Map<String, Cookie> cookieMap = readCookieMap(request);
+        if (cookieMap.containsKey(name)) {
+            Cookie cookie = (Cookie)cookieMap.get(name);
+            return cookie;
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * 将cookie封装到Map里面
+     *
+     * @param request
+     * @return Map<String, Cookie>
+     */
+    private static Map<String, Cookie> readCookieMap(HttpServletRequest request) {
+        Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
+        Cookie[] cookies = request.getCookies();
+        if (null != cookies) {
+            for (Cookie cookie : cookies) {
+                cookieMap.put(cookie.getName(), cookie);
+            }
+        }
+        return cookieMap;
+    }
+
+    /**
+     * 保存Cookies
+     *
+     * @param response response响应
+     * @param name     cookie的名字
+     * @param value    cookie的值
+     * @param time     cookie的存在时间(秒)
+     */
+    public static HttpServletResponse setCookie(HttpServletResponse response, String name, String value, int time) {
+        // new一个Cookie对象,键值对为参数
+        Cookie cookie = new Cookie(name, value);
+        // tomcat下多应用共享
+        cookie.setPath("/");
+        // 如果cookie的值中含有中文时,需要对cookie进行编码,不然会产生乱码
+        try {
+            URLEncoder.encode(value, "utf-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        // 单位:秒
+        cookie.setMaxAge(time);
+        // 将Cookie添加到Response中,使之生效
+        response.addCookie(cookie); // addCookie后,如果已经存在相同名字的cookie,则最新的覆盖旧的cookie
+        return response;
+    }
+
+    /**
+     * <p>删除无效cookie</p>
+     * <p>无效☞1.过时 2.未发布</p>
+     *
+     * @param request   请求
+     * @param response  响应
+     * @param deleteKey 需要删除cookie的名称
+     */
+    public static void deleteCookieByName(HttpServletRequest request, HttpServletResponse response, String deleteKey)
+        throws NullPointerException {
+        Map<String, Cookie> cookieMap = readCookieMap(request);
+        for (String key : cookieMap.keySet()) {
+            if (key.equals(deleteKey)) {
+                Cookie cookie = cookieMap.get(key);
+                // 默认值是-1,即:关闭浏览器时就清除cookie;
+                // 当设置为0的时候:创建完cookie,使用后马上就删除;
+                // 因为时间到了,又因为,cookie没有清除方法,所以设置为 0,就相当于清除方法;
+                // 当设置时间大于0,当时间到达后就会自动删除
+                cookie.setMaxAge(0);//设置cookie有效时间为0
+                cookie.setPath("/");//不设置存储路径
+                response.addCookie(cookie);
+            }
+        }
+    }
+}

+ 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);

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

@@ -27,7 +27,7 @@ spring:
   alert:
     alert-type:
       dingding:
-        url: https://oapi.dingtalk.com/robot/send?access_token=9f140367f26795e163a269645012d11631a1dd32f4e131d66be06a88fd883cc9
+          url: https://oapi.dingtalk.com/robot/send?access_token=9f140367f26795e163a269645012d11631a1dd32f4e131d66be06a88fd883cc9
     alert-rule-config-map:
       URL:
         max-time: 5000
@@ -40,11 +40,11 @@ spring:
         max-time: 1000
     log-monitor-url: http://106.14.4.198:2281/cat/r/m/
     server-domain: http://47.103.148.74:5800
-    console-url: ${spring.alert.server-domain}/index.html
+    console-url: ${spring.alert.server-domain}/index.html?token=${jay.server.token}
     server-log-console: ${spring.alert.server-domain}/api/log/console
 
 elasticsearch:
-  host: 172.19.189.170:26214
+  host: 172.19.189.139:26214
   enable-env-prefix: true
   max_connect_total: 30
   max_connect_per_route: 30
@@ -54,3 +54,11 @@ elasticsearch:
 
 logging:
   config: classpath:logback/logback.xml
+
+# 开启登录模式
+jay:
+  server:
+    enable-login: true
+    token: ELABER
+    username: admin
+    password: elab@123

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

@@ -39,7 +39,7 @@ spring:
         status-list: [ -1 ]
     log-monitor-url: http://101.231.166.56:2281/cat/r/m/
     server-domain: http://127.0.0.1:5800
-    console-url: ${spring.alert.server-domain}/index.html
+    console-url: ${spring.alert.server-domain}/index.html?token=${jay.server.token}
     server-log-console: ${spring.alert.server-domain}/api/log/console
 elasticsearch:
   host: 127.0.0.1:9200

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

@@ -51,4 +51,5 @@ swagger2:
   licenseUrl: http://127.0.0.1:5301/doc.html
   version: 1.0.0
   enable: true
-  docUrl: /v2/api-docs
+  docUrl: /v2/api-docs
+

+ 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: {

+ 3 - 0
jay-monitor-data-server/src/main/resources/static/js/elab-service-config.js

@@ -10,5 +10,8 @@ var urlConfig = {
         "mqListService": "/trace/mqList/",
         "sqlListService": "/trace/sqlList/",
         "urlListService": "/trace/urlList/"
+    },
+    "login":{
+        "loginService":"/login"
     }
 }

+ 1 - 1
jay-monitor-data-server/src/main/resources/templates/index.html

@@ -40,7 +40,7 @@
             <dl class="layui-nav-child"> <!-- 二级菜单 -->
                 <dd><a onclick="x_admin_show('个人信息','http://www.baidu.com')">个人信息</a></dd>
                 <dd><a onclick="x_admin_show('切换帐号','http://www.baidu.com')">切换帐号</a></dd>
-                <dd><a href="./login.html">退出</a></dd>
+                <dd><a href="./loginOut.html">退出</a></dd>
             </dl>
         </li>
         <li class="layui-nav-item to-index"><a href="/">前台首页</a></li>

+ 18 - 8
jay-monitor-data-server/src/main/resources/templates/login.html

@@ -13,20 +13,24 @@
     <script src="./lib/layui/layui.js" charset="utf-8"></script>
     <script code="text/javascript" src="./js/xadmin.js"></script>
     <script code="text/javascript" src="./js/cookie.js"></script>
+    <script code="text/javascript" src="/js/elab-config.js"></script>
+    <script code="text/javascript" src="/js/elab-common.js"></script>
+    <script code="text/javascript" src="/js/elab-service-config.js"></script>
 
 </head>
 <body class="login-bg">
     
     <div class="login layui-anim layui-anim-up">
-        <div class="message">x-admin2.0-管理登录</div>
+        <div class="message">ELab - Jay监控数据后台管理</div>
         <div id="darkbannerwrap"></div>
         
         <form method="post" class="layui-form" >
             <input name="username" placeholder="用户名"  code="text" lay-verify="required" class="layui-input" >
             <hr class="hr15">
-            <input name="password" lay-verify="required" placeholder="密码"  code="password" class="layui-input">
+            <input name="password" type="password" lay-verify="required" placeholder="密码"  code="password" class="layui-input">
             <hr class="hr15">
-            <input value="登录" lay-submit lay-filter="login" style="width:100%;" code="submit">
+<!--            <input value="登录" lay-submit  lay-filter="login" style="width:100%;" code="submit" />-->
+            <button type="button" class="layui-btn layui-btn-fluid" style="width:100%;"  lay-submit  lay-filter="login">登录</button>
             <hr class="hr20" >
         </form>
     </div>
@@ -41,15 +45,21 @@
               //监听提交
               form.on('submit(login)', function(data){
                 // alert(888)
-                layer.msg(JSON.stringify(data.field),function(){
-                    location.href='index.html'
-                });
+                // layer.msg(JSON.stringify(data.field),function(){
+                //     location.href='index.html'
+                // });
+                  elab_common.postReq(urlConfig.login.loginService, data.field, function (res) {
+                      if (res.success) {
+                          location.href='index.html';
+                      }else{
+                          layer.msg(res.message);
+                      }
+                  });
+
                 return false;
               });
             });
         })
-
-        
     </script>
 </body>
 </html>

+ 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: -100
             , 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() {

+ 16 - 1
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">
@@ -294,11 +301,19 @@
             elem: '#d_date'
             , format: 'yyyy-MM-dd'
             , isInitValue: true
-            , min: -7
+            , min: -100
             , 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() {

+ 18 - 1
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">
@@ -235,11 +244,19 @@
             elem: '#d_date'
             , format: 'yyyy-MM-dd'
             , isInitValue: true
-            , min: -7
+            , min: -100
             , 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() {