Explorar o código

补充新数据

liukaixiong %!s(int64=4) %!d(string=hai) anos
pai
achega
64305cf13d
Modificáronse 45 ficheiros con 3145 adicións e 251 borrados
  1. 0 128
      elab-backstage-service/src/main/java/com/elab/backstage/controllers/BackstageRouteController.java
  2. 34 1
      env/sql/mysql.sql
  3. 20 3
      jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/MonitorDataClient.java
  4. 41 0
      jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/MonitorSendProducer.java
  5. 22 0
      jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/anno/EnableMonitorData.java
  6. 8 6
      jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/config/ClientMonitorAutoConfiguration.java
  7. 1 1
      jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/config/props/MonitorProperties.java
  8. 36 0
      jay-monitor-data-client/src/test/java/com/jay/monitor/data/client/MonitorSendProducerTest.java
  9. 4 2
      jay-monitor-data-client/src/test/resources/application.yml
  10. 4 0
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/enums/MonitorDataConstants.java
  11. 7 0
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/enums/MsgTypeEnums.java
  12. 5 4
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/SQLMonitorDTO.java
  13. 18 0
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/URLDataDTO.java
  14. 41 0
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/ApplicationDTO.java
  15. 13 11
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/BaseDTO.java
  16. 55 0
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/GroupDataDTO.java
  17. 53 0
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/LogDataDTO.java
  18. 26 0
      jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/RequestDataDTO.java
  19. 4 0
      jay-monitor-data-service/pom.xml
  20. 1 2
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/BackstageServiceApplication.java
  21. 1 1
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/MonitorDataServer.java
  22. 1 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/daos/BackstageRouteMapper.java
  23. 30 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/daos/JayMonitorUrlLogMapper.java
  24. 30 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/daos/JayMonitorUrlMapper.java
  25. 159 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrl.java
  26. 923 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrlExample.java
  27. 91 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrlLog.java
  28. 592 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrlLogExample.java
  29. 10 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/AbstractUserProcess.java
  30. 1 1
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/BatchUserProcess.java
  31. 1 1
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/SQLUserProcess.java
  32. 64 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/URLUserProcess.java
  33. 26 0
      jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/utils/DataUtils.java
  34. 2 1
      jay-monitor-data-service/src/main/resources/application-com.yml
  35. 7 68
      jay-monitor-data-service/src/main/resources/application-dev.yml
  36. 3 2
      jay-monitor-data-service/src/main/resources/application-test.yml
  37. 1 1
      jay-monitor-data-service/src/main/resources/application-uat.yml
  38. 35 7
      jay-monitor-data-service/src/main/resources/application.yml
  39. 209 0
      jay-monitor-data-service/src/main/resources/com/alipay/remoting/log/logback/log-conf.xml
  40. 14 4
      jay-monitor-data-service/src/main/resources/logback.xml
  41. 220 0
      jay-monitor-data-service/src/main/resources/mybatis/mapper/JayMonitorUrlLogMapper.xml
  42. 300 0
      jay-monitor-data-service/src/main/resources/mybatis/mapper/JayMonitorUrlMapper.xml
  43. 20 7
      jay-monitor-data-service/src/test/java/com/jay/monitor/data/server/MonitorDataServerTest.java
  44. 5 0
      pom.xml
  45. 7 0
      数据调度监控.md

+ 0 - 128
elab-backstage-service/src/main/java/com/elab/backstage/controllers/BackstageRouteController.java

@@ -1,128 +0,0 @@
-package com.elab.backstage.controllers;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.elab.backstage.core.model.response.*;
-import com.elab.backstage.core.utils.ResponseUtils;
-import com.elab.backstage.models.entity.BackstageRoute;
-import com.elab.backstage.models.request.route.BackstageRoutePageRequest;
-import com.elab.backstage.models.request.route.RouteDataRequest;
-import com.elab.backstage.services.impl.DefaultBackstageRouteService;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 后台路由管理
- *
- * @author liukx
- * @Date 2019-02-28 15:16
- */
-@Controller
-@RequestMapping(value = "/backstageRoute")
-public class BackstageRouteController {
-
-    final static private String page = "/route/";
-    @Autowired
-    private DefaultBackstageRouteService routesService;
-
-
-    @RequestMapping(value = "/list.html", method = RequestMethod.GET)
-    public String list() throws Exception {
-        return page + "routeList";
-    }
-
-    @RequestMapping(value = "/update.html", method = RequestMethod.GET)
-    public String update(@RequestParam("id") Integer id, Model model) throws Exception {
-        ResponseUtils.checkParamNull(id, "id");
-        BackstageRoute entity = routesService.getById(id + "");
-        model.addAttribute("obj", entity);
-        return page + "update";
-    }
-
-
-    @RequestMapping(value = "/refresh.html", method = RequestMethod.GET)
-    public String refreshHtml(Model model) throws Exception {
-        List<String> routes = routesService.getRoutes();
-        model.addAttribute("routes", routes);
-        return page + "refresh";
-    }
-
-    /**
-     * 添加后台路由管理管理模块
-     *
-     * @param request 请求参数
-     * @return
-     * @throws Exception
-     */
-    @RequestMapping(value = "/insert", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public ResponseCommonModel insertBackstageRoute(@RequestBody BackstageRoute request) throws Exception {
-        int result = routesService.insert(request);
-        ResponseCommonModel response = new ResponseCommonModel();
-        if (result < 0) {
-            response.setSuccess(false);
-        }
-        return response;
-    }
-
-    @RequestMapping(value = "/refresh", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public ResponseCommonModel refresh(@RequestBody RouteDataRequest dataRequest) throws Exception {
-        ResponseCommonModel responseCommonModel = routesService.executeRefresh(dataRequest);
-        return responseCommonModel;
-    }
-
-    @RequestMapping(value = "/list", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public ObjectResponseModel<BackstageRoute> findBackstageRouteList(@RequestBody BackstageRoutePageRequest request) throws Exception {
-        BackstageRoute entity = new BackstageRoute();
-        BeanUtils.copyProperties(request, entity);
-        // 将参数对应的全部匹配赋值
-        QueryWrapper queryWrapper = new QueryWrapper(entity);
-        Page<BackstageRoute> page = new Page<>(request.getPageNo(), request.getPageSize());
-        IPage pageInfo = routesService.page(page, queryWrapper);
-        ObjectResponseModel objectResponseModel = new ObjectResponseModel();
-        objectResponseModel.setSingle(pageInfo);
-        // 将查询出来的参数传递给对外的实体
-//        BeanUtils.copyProperties(backEntityPageModel, pageModel1);
-        return objectResponseModel;
-    }
-
-    @RequestMapping(value = "/getObjectById", method = RequestMethod.GET)
-    @ResponseBody
-    public ObjectResponseModel<BackstageRoute> getObjectById(@RequestParam("id") Integer id) throws Exception {
-        BackstageRoute result = routesService.getById(id + "");
-        ObjectResponseModel<BackstageRoute> model = new ObjectResponseModel<BackstageRoute>();
-        model.setSingle(result);
-        return model;
-    }
-
-    @RequestMapping(value = "/getObjectByList", method = RequestMethod.POST)
-    @ResponseBody
-    public ListResponseModel<BackstageRoute> getObjectByList(@RequestBody BackstageRoute request) throws Exception {
-        QueryWrapper queryWrapper = new QueryWrapper(request);
-        List<BackstageRoute> result = routesService.listObjs(queryWrapper);
-        ListResponseModel<BackstageRoute> model = new ListResponseModel<BackstageRoute>();
-        model.setList(result);
-        return model;
-    }
-
-    @RequestMapping(value = "/update", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public ResponseCommonModel updateBackstageRouteInfo(@RequestBody BackstageRoute request) throws Exception {
-        request.setUpdated(new Date());
-        boolean b = routesService.updateById(request);
-        ResponseCommonModel response = new ResponseCommonModel();
-        if (b) {
-            response.setSuccess(false);
-        }
-        return response;
-    }
-}

+ 34 - 1
env/sql/mysql.sql

@@ -16,4 +16,37 @@ CREATE TABLE `backstage_route` (
   `creator` varchar(20) DEFAULT NULL COMMENT '创建者',
   `updator` varchar(20) DEFAULT NULL COMMENT '修改者',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=373 DEFAULT CHARSET=utf8mb4 COMMENT='后台路由管理';
+) ENGINE=InnoDB AUTO_INCREMENT=373 DEFAULT CHARSET=utf8mb4 COMMENT='后台路由管理';
+
+
+
+
+CREATE TABLE `jay_monitor_url`  (
+  `id` int NOT NULL COMMENT '主键名称' AUTO_INCREMENT,
+  `application_name` varchar(50) NULL COMMENT '应用名称',
+  `appllication_ip` varchar(20) NULL COMMENT '应用地址',
+  `monitor_type` varchar(10) NULL COMMENT '应用监控类型',
+  `data_group_name` varchar(50) NULL COMMENT '应用监控组',
+  `data_group_key` varchar(50) NULL COMMENT '应用监控key',
+  `data_id` varchar(50) NULL COMMENT '数据编号',
+  `status` int(4) NULL COMMENT '状态1:正常消息 -1异常消息',
+  `request_time` int(11) NULL COMMENT '请求时长',
+  `created_time` datetime NULL COMMENT '时间时间',
+  `created_day` date NULL COMMENT '日期',
+  PRIMARY KEY (`id`),
+  INDEX `idx_pub`(`application_name`, `data_group_name`, `data_group_key`, `data_id`, `created_time`) USING BTREE COMMENT '通用的索引',
+  INDEX `idx_created`(`created_time`) USING BTREE COMMENT '创建时间维度',
+  INDEX `idx_request`(`application_name`, `request_time`) USING BTREE COMMENT '请求事件维度'
+);
+
+CREATE TABLE `jay_monitor_url_log`  (
+  `id` int NOT NULL AUTO_INCREMENT,
+  `monitor_id` int(11) NULL COMMENT '监控来源编号',
+  `log_id` varchar(50) NULL COMMENT '日志编号',
+  `monitor_type` varchar(50) NULL COMMENT '监控类型',
+  `log_text` text NULL COMMENT '日志文本',
+  `create_date` date NULL COMMENT '创建日期',
+  PRIMARY KEY (`id`),
+  INDEX `idx_monitor`(`monitor_id`, `monitor_type`) USING BTREE COMMENT '监控关系',
+  INDEX `idx_create_date`(`create_date`) USING BTREE COMMENT '创建时间索引,用来清空文本'
+);

+ 20 - 3
jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/MonitorDataClient.java

@@ -3,12 +3,14 @@ package com.jay.monitor.data.client;
 import com.alipay.remoting.InvokeContext;
 import com.alipay.remoting.rpc.RpcClient;
 import com.jay.monitor.data.core.enums.MonitorDataConstants;
-import com.jay.monitor.data.core.model.serializable.BaseDTO;
+import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.Queue;
 import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 /**
  * 监控数据客户端传输列
@@ -28,6 +30,8 @@ public class MonitorDataClient implements Runnable {
 
     private RpcClient client = new RpcClient();
 
+    private ExecutorService executorService = Executors.newSingleThreadExecutor();
+
     private Integer queueSize = 1000;
 
     private Queue<BaseDTO> queueData;
@@ -41,6 +45,7 @@ public class MonitorDataClient implements Runnable {
         this.host = host;
         this.port = port;
         this.addr = host + ":" + port;
+
     }
 
     /**
@@ -48,6 +53,7 @@ public class MonitorDataClient implements Runnable {
      */
     public void init() {
         queueData = new ArrayBlockingQueue<>(getQueueSize());
+        executorService.execute(this);
         client.startup();
     }
 
@@ -69,21 +75,31 @@ public class MonitorDataClient implements Runnable {
      * @param data
      * @throws Exception
      */
-    public void sendOnway(Object data) throws Exception {
+    private void sendOnWay(Object data) throws Exception {
         client.oneway(getAddr(), data, invokeContext);
     }
 
+    /**
+     * 发送数据
+     *
+     * @param data
+     */
+    public void sendObjectMsg(BaseDTO data) {
+        queueData.add(data);
+    }
+
     public void addInvokeContext(String key, String value) {
         invokeContext.put(key, value);
     }
 
     @Override
     public void run() {
+        logger.info(" 开启监控数据传输线程 ... ");
         while (true) {
             BaseDTO baseDTO = queueData.poll();
             try {
                 if (baseDTO != null) {
-                    sendOnway(baseDTO);
+                    sendOnWay(baseDTO);
                 }
             } catch (Exception e) {
                 logger.error("monitor consumer fail", e);
@@ -92,6 +108,7 @@ public class MonitorDataClient implements Runnable {
                     Thread.sleep(5);
                 } catch (InterruptedException e) {
                     e.printStackTrace();
+                    logger.error("数据传输线程失败", e);
                 }
             }
 

+ 41 - 0
jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/MonitorSendProducer.java

@@ -0,0 +1,41 @@
+package com.jay.monitor.data.client;
+
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Module TODO
+ * @Description TODO
+ * @Author liukaixiong
+ * @Date 2020/10/23 19:38
+ */
+@Component
+public class MonitorSendProducer implements ApplicationContextAware {
+
+    private static ApplicationContext applicationContext;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        MonitorSendProducer.applicationContext = applicationContext;
+    }
+
+    /**
+     * 发送数据
+     *
+     * @param dataDTO
+     * @throws Exception
+     */
+    public static void sendMsg(URLDataDTO dataDTO) throws Exception {
+        MonitorDataClient monitorData = getMonitorData();
+        if (monitorData != null) {
+            getMonitorData().sendObjectMsg(dataDTO);
+        }
+    }
+
+    private static MonitorDataClient getMonitorData() {
+        return applicationContext.getBean(MonitorDataClient.class);
+    }
+}

+ 22 - 0
jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/anno/EnableMonitorData.java

@@ -0,0 +1,22 @@
+package com.jay.monitor.data.client.anno;
+
+import com.jay.monitor.data.client.config.ClientMonitorAutoConfiguration;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+import java.lang.annotation.*;
+
+/**
+ * @Module TODO
+ * @Description TODO
+ * @Author liukaixiong
+ * @Date 2020/10/23 19:47
+ */
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Configuration
+@Import({ClientMonitorAutoConfiguration.class})
+public @interface EnableMonitorData {
+
+}

+ 8 - 6
jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/config/ClientMonitorAutoConfiguration.java

@@ -2,14 +2,17 @@ package com.jay.monitor.data.client.config;
 
 import com.alibaba.druid.pool.DruidDataSource;
 import com.jay.monitor.data.client.MonitorDataClient;
+import com.jay.monitor.data.client.MonitorSendProducer;
 import com.jay.monitor.data.client.config.props.MonitorProperties;
 import com.jay.monitor.data.client.filter.DruidMonitorFilter;
+import com.jay.monitor.data.core.enums.MonitorDataConstants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 import java.net.InetAddress;
 
@@ -21,20 +24,19 @@ import java.net.InetAddress;
  */
 @Configuration
 @EnableConfigurationProperties({MonitorProperties.class})
+@Import({MonitorSendProducer.class})
 public class ClientMonitorAutoConfiguration {
 
-    @Autowired
-    private MonitorProperties monitorProperties;
-
     @Value(value = "${spring.application.name}")
     private String applicationName;
 
     @Bean
-    public MonitorDataClient monitorDataClient() throws Exception {
+    public MonitorDataClient monitorDataClient(@Autowired MonitorProperties monitorProperties) throws Exception {
         MonitorDataClient client = new MonitorDataClient(monitorProperties.getHost(), monitorProperties.getPort());
         client.setQueueSize(monitorProperties.getQueueSize());
-        client.addInvokeContext("client.service", applicationName);
-        client.addInvokeContext("client.intranet", InetAddress.getLocalHost().getHostAddress());
+        client.addInvokeContext(MonitorDataConstants.INVOKE_CLIENT_NAME, applicationName);
+        client.addInvokeContext(MonitorDataConstants.INVOKE_CLIENT_IP, InetAddress.getLocalHost().getHostAddress());
+        client.init();
         return client;
     }
 

+ 1 - 1
jay-monitor-data-client/src/main/java/com/jay/monitor/data/client/config/props/MonitorProperties.java

@@ -9,7 +9,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
  * @author : liukx
  * @time : 2020/8/26 - 15:40
  */
-@ConfigurationProperties(prefix = "spring.monitorData")
+@ConfigurationProperties(prefix = "spring.monitor-data")
 public class MonitorProperties {
 
     private String host;

+ 36 - 0
jay-monitor-data-client/src/test/java/com/jay/monitor/data/client/MonitorSendProducerTest.java

@@ -0,0 +1,36 @@
+package com.jay.monitor.data.client;
+
+import com.jay.monitor.data.client.config.ClientMonitorAutoConfiguration;
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Date;
+
+/**
+ * @Module TODO
+ * @Description TODO
+ * @Author liukaixiong
+ * @Date 2020/10/23 19:51
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {ClientMonitorAutoConfiguration.class})
+//@EnableMonitorData
+public class MonitorSendProducerTest {
+
+    @Test
+    public void sendMsg() throws Exception {
+
+        URLDataDTO dataDTO = new URLDataDTO();
+        dataDTO.setApplicationName("abc");
+        dataDTO.setCreateDate(new Date());
+        dataDTO.setIp("1:1:1:");
+        dataDTO.setGroupName("asdfasfas");
+        dataDTO.setDataId("123123");
+
+        MonitorSendProducer.sendMsg(dataDTO);
+        System.in.read();
+    }
+}

+ 4 - 2
jay-monitor-data-client/src/test/resources/application.yml

@@ -1,2 +1,4 @@
-elab:
-  address: 127.0.0.1:4399
+spring:
+  monitor-data:
+    host: 127.0.0.1
+    port: 9420

+ 4 - 0
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/enums/MonitorDataConstants.java

@@ -16,6 +16,10 @@ public class MonitorDataConstants {
      */
     public static final Integer DEFAULT_PORT = 9420;
 
+
+    public static String INVOKE_CLIENT_IP = "invoke.client.ip";
+    public static String INVOKE_CLIENT_NAME = "invoke.client.name";
+
     public static final byte M_REGISTER = 0x01;     // Request
     public static final byte M_URL = 0x02;     // Response
     public static final byte M_SQL = 0x03;     // 发布服务

+ 7 - 0
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/enums/MsgTypeEnums.java

@@ -8,5 +8,12 @@ package com.jay.monitor.data.core.enums;
  * @time : 2019/10/25 - 15:07
  */
 public enum MsgTypeEnums {
+    /**
+     * SQL :        SQL语句类型
+     * SERVICE :    业务类型
+     * URL  :       请求URL类型
+     * CACHE :      缓存类型
+     * OTHER :      其他类型
+     */
     SQL, SERVICE, URL, BUSINESS, CACHE, OTHER;
 }

+ 5 - 4
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/SQLMonitorDTO.java

@@ -1,6 +1,7 @@
 package com.jay.monitor.data.core.model.serializable;
 
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.serializable.base.ApplicationDTO;
 
 /**
  * SQL相关的数据
@@ -8,7 +9,7 @@ import com.jay.monitor.data.core.enums.MsgTypeEnums;
  * @author : liukx
  * @time : 2020/8/26 - 16:31
  */
-public class SQLMonitorDTO extends BaseDTO {
+public class SQLMonitorDTO extends ApplicationDTO {
 
     public SQLMonitorDTO() {
         super(MsgTypeEnums.SQL);
@@ -25,7 +26,7 @@ public class SQLMonitorDTO extends BaseDTO {
     /**
      * SQL类型
      */
-    private Integer SqlType;
+    private Integer sqlType;
     /**
      * 返回行数
      */
@@ -61,11 +62,11 @@ public class SQLMonitorDTO extends BaseDTO {
     }
 
     public Integer getSqlType() {
-        return SqlType;
+        return sqlType;
     }
 
     public void setSqlType(Integer sqlType) {
-        SqlType = sqlType;
+        this.sqlType = sqlType;
     }
 
     public String getResultRow() {

+ 18 - 0
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/URLDataDTO.java

@@ -0,0 +1,18 @@
+package com.jay.monitor.data.core.model.serializable;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+import com.jay.monitor.data.core.model.serializable.base.LogDataDTO;
+
+/**
+ * @Module URL传输数据结构
+ * @Description URL传输对象
+ * @Author liukaixiong
+ * @Date 2020/10/23 15:52
+ */
+public class URLDataDTO extends LogDataDTO {
+
+    public URLDataDTO() {
+        super(MsgTypeEnums.URL);
+    }
+
+}

+ 41 - 0
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/ApplicationDTO.java

@@ -0,0 +1,41 @@
+package com.jay.monitor.data.core.model.serializable.base;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+
+/**
+ * @Module 传输层
+ * @Description 应用对象描述
+ * @Author liukaixiong
+ * @Date 2020/10/21 17:28
+ */
+public class ApplicationDTO extends BaseDTO {
+
+    public ApplicationDTO(MsgTypeEnums type) {
+        super(type);
+    }
+
+    /**
+     * 所属ip
+     */
+    private String ip;
+    /**
+     * 应用名称
+     */
+    private String applicationName;
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+}

+ 13 - 11
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/BaseDTO.java

@@ -1,8 +1,9 @@
-package com.jay.monitor.data.core.model.serializable;
+package com.jay.monitor.data.core.model.serializable.base;
 
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -24,22 +25,15 @@ public class BaseDTO implements Serializable {
     private MsgTypeEnums type;
 
     /**
-     * 日志编号
+     * 创建时间
      */
-    private String logId;
+    private Date createDate;
+
     /**
      * 拓展参数
      */
     private Map<String, Object> extMap = new LinkedHashMap<String, Object>();
 
-    public String getLogId() {
-        return logId;
-    }
-
-    public void setLogId(String logId) {
-        this.logId = logId;
-    }
-
     public MsgTypeEnums getType() {
         return type;
     }
@@ -55,4 +49,12 @@ public class BaseDTO implements Serializable {
     public void setExtMap(Map<String, Object> extMap) {
         this.extMap = extMap;
     }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
 }

+ 55 - 0
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/GroupDataDTO.java

@@ -0,0 +1,55 @@
+package com.jay.monitor.data.core.model.serializable.base;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+
+/**
+ * @Module 传输层
+ * @Description 搜索组对象
+ * @Author liukaixiong
+ * @Date 2020/10/21 17:18
+ */
+public abstract class GroupDataDTO extends ApplicationDTO {
+
+    public GroupDataDTO(MsgTypeEnums type) {
+        super(type);
+    }
+
+    /**
+     * 组名称
+     */
+    private String groupName;
+
+    /**
+     * 组的key名称
+     */
+    private String groupKeyName;
+
+    /**
+     * 数据编号
+     */
+    private String dataId;
+
+    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;
+    }
+}

+ 53 - 0
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/LogDataDTO.java

@@ -0,0 +1,53 @@
+package com.jay.monitor.data.core.model.serializable.base;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+
+/**
+ * @Module 传输层
+ * @Description 日志对象定义
+ * @Author liukaixiong
+ * @Date 2020/10/23 15:59
+ */
+public class LogDataDTO extends RequestDataDTO {
+
+    public LogDataDTO(MsgTypeEnums type) {
+        super(type);
+    }
+
+    /**
+     * log编号
+     */
+    private String logId;
+    /**
+     * log消息
+     */
+    private String logMsg;
+    /**
+     * 消息状态 : 1正常消息、-1异常消息
+     */
+    private Integer status = 1;
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getLogId() {
+        return logId;
+    }
+
+    public void setLogId(String logId) {
+        this.logId = logId;
+    }
+
+    public String getLogMsg() {
+        return logMsg;
+    }
+
+    public void setLogMsg(String logMsg) {
+        this.logMsg = logMsg;
+    }
+}

+ 26 - 0
jay-monitor-data-core/src/main/java/com/jay/monitor/data/core/model/serializable/base/RequestDataDTO.java

@@ -0,0 +1,26 @@
+package com.jay.monitor.data.core.model.serializable.base;
+
+import com.jay.monitor.data.core.enums.MsgTypeEnums;
+
+/**
+ * @Module TODO
+ * @Description TODO
+ * @Author liukaixiong
+ * @Date 2020/10/23 16:20
+ */
+public class RequestDataDTO extends GroupDataDTO{
+
+    public RequestDataDTO(MsgTypeEnums type) {
+        super(type);
+    }
+
+    private Long requestTime;
+
+    public Long getRequestTime() {
+        return requestTime;
+    }
+
+    public void setRequestTime(Long requestTime) {
+        this.requestTime = requestTime;
+    }
+}

+ 4 - 0
jay-monitor-data-service/pom.xml

@@ -20,6 +20,10 @@
             <artifactId>jay-monitor-data-api</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.jay.monitor.data</groupId>
             <artifactId>jay-monitor-data-core</artifactId>

+ 1 - 2
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/BackstageServiceApplication.java

@@ -8,11 +8,10 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 @SpringBootApplication
 @MapperScan(basePackages = "com.jay.monitor.data.server.daos")
 @EnableScheduling
-//@EnableDiscoveryClient
-//@EnableFeignClients
 public class BackstageServiceApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(BackstageServiceApplication.class, args);
     }
+
 }

+ 1 - 1
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/MonitorDataServer.java

@@ -47,7 +47,7 @@ public class MonitorDataServer {
     }
 
     public void stop() {
-        this.server.stop();
+        this.server.shutdown();
     }
 
     public RpcServer getRpcServer() {

+ 1 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/daos/BackstageRouteMapper.java

@@ -9,6 +9,7 @@ import java.util.List;
 
 
 public interface BackstageRouteMapper extends BaseMapper<BackstageRoute> {
+
     int countByExample(BackstageRouteExample example);
 
     int deleteByExample(BackstageRouteExample example);

+ 30 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/daos/JayMonitorUrlLogMapper.java

@@ -0,0 +1,30 @@
+package com.jay.monitor.data.server.daos;
+
+import com.jay.monitor.data.server.models.entity.JayMonitorUrlLog;
+import com.jay.monitor.data.server.models.entity.JayMonitorUrlLogExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface JayMonitorUrlLogMapper {
+    long countByExample(JayMonitorUrlLogExample example);
+
+    int deleteByExample(JayMonitorUrlLogExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(JayMonitorUrlLog record);
+
+    int insertSelective(JayMonitorUrlLog record);
+
+    List<JayMonitorUrlLog> selectByExample(JayMonitorUrlLogExample example);
+
+    JayMonitorUrlLog selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") JayMonitorUrlLog record, @Param("example") JayMonitorUrlLogExample example);
+
+    int updateByExample(@Param("record") JayMonitorUrlLog record, @Param("example") JayMonitorUrlLogExample example);
+
+    int updateByPrimaryKeySelective(JayMonitorUrlLog record);
+
+    int updateByPrimaryKey(JayMonitorUrlLog record);
+}

+ 30 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/daos/JayMonitorUrlMapper.java

@@ -0,0 +1,30 @@
+package com.jay.monitor.data.server.daos;
+
+import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
+import com.jay.monitor.data.server.models.entity.JayMonitorUrlExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface JayMonitorUrlMapper {
+    long countByExample(JayMonitorUrlExample example);
+
+    int deleteByExample(JayMonitorUrlExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(JayMonitorUrl record);
+
+    int insertSelective(JayMonitorUrl record);
+
+    List<JayMonitorUrl> selectByExample(JayMonitorUrlExample example);
+
+    JayMonitorUrl selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") JayMonitorUrl record, @Param("example") JayMonitorUrlExample example);
+
+    int updateByExample(@Param("record") JayMonitorUrl record, @Param("example") JayMonitorUrlExample example);
+
+    int updateByPrimaryKeySelective(JayMonitorUrl record);
+
+    int updateByPrimaryKey(JayMonitorUrl record);
+}

+ 159 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrl.java

@@ -0,0 +1,159 @@
+package com.jay.monitor.data.server.models.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * jay_monitor_url
+ * @author 
+ */
+public class JayMonitorUrl implements Serializable {
+    /**
+     * 主键名称
+     */
+    private Integer id;
+
+    /**
+     * 应用名称
+     */
+    private String applicationName;
+
+    /**
+     * 应用地址
+     */
+    private String applicationIp;
+
+    /**
+     * 应用监控类型
+     */
+    private String monitorType;
+
+    /**
+     * 应用监控组
+     */
+    private String dataGroupName;
+
+    /**
+     * 应用监控key
+     */
+    private String dataGroupKey;
+
+    /**
+     * 数据编号
+     */
+    private String dataId;
+
+    /**
+     * 状态1:正常消息 -1异常消息
+     */
+    private Integer status;
+
+    /**
+     * 请求时长
+     */
+    private Integer requestTime;
+
+    /**
+     * 时间时间
+     */
+    private Date createdTime;
+
+    /**
+     * 日期
+     */
+    private Date createdDay;
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationIp() {
+        return applicationIp;
+    }
+
+    public void setApplicationIp(String applicationIp) {
+        this.applicationIp = applicationIp;
+    }
+
+    public String getMonitorType() {
+        return monitorType;
+    }
+
+    public void setMonitorType(String monitorType) {
+        this.monitorType = monitorType;
+    }
+
+    public String getDataGroupName() {
+        return dataGroupName;
+    }
+
+    public void setDataGroupName(String dataGroupName) {
+        this.dataGroupName = dataGroupName;
+    }
+
+    public String getDataGroupKey() {
+        return dataGroupKey;
+    }
+
+    public void setDataGroupKey(String dataGroupKey) {
+        this.dataGroupKey = dataGroupKey;
+    }
+
+    public String getDataId() {
+        return dataId;
+    }
+
+    public void setDataId(String dataId) {
+        this.dataId = dataId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public 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 Date getCreatedDay() {
+        return createdDay;
+    }
+
+    public void setCreatedDay(Date createdDay) {
+        this.createdDay = createdDay;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+}

+ 923 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrlExample.java

@@ -0,0 +1,923 @@
+package com.jay.monitor.data.server.models.entity;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+public class JayMonitorUrlExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public JayMonitorUrlExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameIsNull() {
+            addCriterion("application_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameIsNotNull() {
+            addCriterion("application_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameEqualTo(String value) {
+            addCriterion("application_name =", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameNotEqualTo(String value) {
+            addCriterion("application_name <>", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameGreaterThan(String value) {
+            addCriterion("application_name >", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameGreaterThanOrEqualTo(String value) {
+            addCriterion("application_name >=", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameLessThan(String value) {
+            addCriterion("application_name <", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameLessThanOrEqualTo(String value) {
+            addCriterion("application_name <=", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameLike(String value) {
+            addCriterion("application_name like", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameNotLike(String value) {
+            addCriterion("application_name not like", value, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameIn(List<String> values) {
+            addCriterion("application_name in", values, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameNotIn(List<String> values) {
+            addCriterion("application_name not in", values, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameBetween(String value1, String value2) {
+            addCriterion("application_name between", value1, value2, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationNameNotBetween(String value1, String value2) {
+            addCriterion("application_name not between", value1, value2, "applicationName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpIsNull() {
+            addCriterion("application_ip is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpIsNotNull() {
+            addCriterion("application_ip is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpEqualTo(String value) {
+            addCriterion("application_ip =", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpNotEqualTo(String value) {
+            addCriterion("application_ip <>", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpGreaterThan(String value) {
+            addCriterion("application_ip >", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpGreaterThanOrEqualTo(String value) {
+            addCriterion("application_ip >=", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpLessThan(String value) {
+            addCriterion("application_ip <", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpLessThanOrEqualTo(String value) {
+            addCriterion("application_ip <=", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpLike(String value) {
+            addCriterion("application_ip like", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpNotLike(String value) {
+            addCriterion("application_ip not like", value, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpIn(List<String> values) {
+            addCriterion("application_ip in", values, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpNotIn(List<String> values) {
+            addCriterion("application_ip not in", values, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpBetween(String value1, String value2) {
+            addCriterion("application_ip between", value1, value2, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplicationIpNotBetween(String value1, String value2) {
+            addCriterion("application_ip not between", value1, value2, "applicationIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeIsNull() {
+            addCriterion("monitor_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeIsNotNull() {
+            addCriterion("monitor_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeEqualTo(String value) {
+            addCriterion("monitor_type =", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotEqualTo(String value) {
+            addCriterion("monitor_type <>", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeGreaterThan(String value) {
+            addCriterion("monitor_type >", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeGreaterThanOrEqualTo(String value) {
+            addCriterion("monitor_type >=", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeLessThan(String value) {
+            addCriterion("monitor_type <", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeLessThanOrEqualTo(String value) {
+            addCriterion("monitor_type <=", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeLike(String value) {
+            addCriterion("monitor_type like", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotLike(String value) {
+            addCriterion("monitor_type not like", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeIn(List<String> values) {
+            addCriterion("monitor_type in", values, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotIn(List<String> values) {
+            addCriterion("monitor_type not in", values, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeBetween(String value1, String value2) {
+            addCriterion("monitor_type between", value1, value2, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotBetween(String value1, String value2) {
+            addCriterion("monitor_type not between", value1, value2, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameIsNull() {
+            addCriterion("data_group_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameIsNotNull() {
+            addCriterion("data_group_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameEqualTo(String value) {
+            addCriterion("data_group_name =", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameNotEqualTo(String value) {
+            addCriterion("data_group_name <>", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameGreaterThan(String value) {
+            addCriterion("data_group_name >", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameGreaterThanOrEqualTo(String value) {
+            addCriterion("data_group_name >=", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameLessThan(String value) {
+            addCriterion("data_group_name <", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameLessThanOrEqualTo(String value) {
+            addCriterion("data_group_name <=", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameLike(String value) {
+            addCriterion("data_group_name like", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameNotLike(String value) {
+            addCriterion("data_group_name not like", value, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameIn(List<String> values) {
+            addCriterion("data_group_name in", values, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameNotIn(List<String> values) {
+            addCriterion("data_group_name not in", values, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameBetween(String value1, String value2) {
+            addCriterion("data_group_name between", value1, value2, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupNameNotBetween(String value1, String value2) {
+            addCriterion("data_group_name not between", value1, value2, "dataGroupName");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyIsNull() {
+            addCriterion("data_group_key is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyIsNotNull() {
+            addCriterion("data_group_key is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyEqualTo(String value) {
+            addCriterion("data_group_key =", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyNotEqualTo(String value) {
+            addCriterion("data_group_key <>", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyGreaterThan(String value) {
+            addCriterion("data_group_key >", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyGreaterThanOrEqualTo(String value) {
+            addCriterion("data_group_key >=", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyLessThan(String value) {
+            addCriterion("data_group_key <", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyLessThanOrEqualTo(String value) {
+            addCriterion("data_group_key <=", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyLike(String value) {
+            addCriterion("data_group_key like", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyNotLike(String value) {
+            addCriterion("data_group_key not like", value, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyIn(List<String> values) {
+            addCriterion("data_group_key in", values, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyNotIn(List<String> values) {
+            addCriterion("data_group_key not in", values, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyBetween(String value1, String value2) {
+            addCriterion("data_group_key between", value1, value2, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataGroupKeyNotBetween(String value1, String value2) {
+            addCriterion("data_group_key not between", value1, value2, "dataGroupKey");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdIsNull() {
+            addCriterion("data_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdIsNotNull() {
+            addCriterion("data_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdEqualTo(String value) {
+            addCriterion("data_id =", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdNotEqualTo(String value) {
+            addCriterion("data_id <>", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdGreaterThan(String value) {
+            addCriterion("data_id >", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdGreaterThanOrEqualTo(String value) {
+            addCriterion("data_id >=", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdLessThan(String value) {
+            addCriterion("data_id <", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdLessThanOrEqualTo(String value) {
+            addCriterion("data_id <=", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdLike(String value) {
+            addCriterion("data_id like", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdNotLike(String value) {
+            addCriterion("data_id not like", value, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdIn(List<String> values) {
+            addCriterion("data_id in", values, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdNotIn(List<String> values) {
+            addCriterion("data_id not in", values, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdBetween(String value1, String value2) {
+            addCriterion("data_id between", value1, value2, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDataIdNotBetween(String value1, String value2) {
+            addCriterion("data_id not between", value1, value2, "dataId");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNull() {
+            addCriterion("`status` is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("`status` is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("`status` =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("`status` <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("`status` >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("`status` >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("`status` <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("`status` <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("`status` in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("`status` not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("`status` between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("`status` not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeIsNull() {
+            addCriterion("request_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeIsNotNull() {
+            addCriterion("request_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeEqualTo(Integer value) {
+            addCriterion("request_time =", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeNotEqualTo(Integer value) {
+            addCriterion("request_time <>", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeGreaterThan(Integer value) {
+            addCriterion("request_time >", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("request_time >=", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeLessThan(Integer value) {
+            addCriterion("request_time <", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeLessThanOrEqualTo(Integer value) {
+            addCriterion("request_time <=", value, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeIn(List<Integer> values) {
+            addCriterion("request_time in", values, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeNotIn(List<Integer> values) {
+            addCriterion("request_time not in", values, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeBetween(Integer value1, Integer value2) {
+            addCriterion("request_time between", value1, value2, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRequestTimeNotBetween(Integer value1, Integer value2) {
+            addCriterion("request_time not between", value1, value2, "requestTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeIsNull() {
+            addCriterion("created_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeIsNotNull() {
+            addCriterion("created_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeEqualTo(LocalDateTime value) {
+            addCriterion("created_time =", value, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeNotEqualTo(LocalDateTime value) {
+            addCriterion("created_time <>", value, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeGreaterThan(LocalDateTime value) {
+            addCriterion("created_time >", value, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeGreaterThanOrEqualTo(LocalDateTime value) {
+            addCriterion("created_time >=", value, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeLessThan(LocalDateTime value) {
+            addCriterion("created_time <", value, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeLessThanOrEqualTo(LocalDateTime value) {
+            addCriterion("created_time <=", value, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeIn(List<LocalDateTime> values) {
+            addCriterion("created_time in", values, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeNotIn(List<LocalDateTime> values) {
+            addCriterion("created_time not in", values, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeBetween(LocalDateTime value1, LocalDateTime value2) {
+            addCriterion("created_time between", value1, value2, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
+            addCriterion("created_time not between", value1, value2, "createdTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayIsNull() {
+            addCriterion("created_day is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayIsNotNull() {
+            addCriterion("created_day is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayEqualTo(LocalDate value) {
+            addCriterion("created_day =", value, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayNotEqualTo(LocalDate value) {
+            addCriterion("created_day <>", value, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayGreaterThan(LocalDate value) {
+            addCriterion("created_day >", value, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayGreaterThanOrEqualTo(LocalDate value) {
+            addCriterion("created_day >=", value, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayLessThan(LocalDate value) {
+            addCriterion("created_day <", value, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayLessThanOrEqualTo(LocalDate value) {
+            addCriterion("created_day <=", value, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayIn(List<LocalDate> values) {
+            addCriterion("created_day in", values, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayNotIn(List<LocalDate> values) {
+            addCriterion("created_day not in", values, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayBetween(LocalDate value1, LocalDate value2) {
+            addCriterion("created_day between", value1, value2, "createdDay");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreatedDayNotBetween(LocalDate value1, LocalDate value2) {
+            addCriterion("created_day not between", value1, value2, "createdDay");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     */
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 91 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrlLog.java

@@ -0,0 +1,91 @@
+package com.jay.monitor.data.server.models.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * jay_monitor_url_log
+ * @author 
+ */
+public class JayMonitorUrlLog implements Serializable {
+    private Integer id;
+
+    /**
+     * 监控来源编号
+     */
+    private Integer monitorId;
+
+    /**
+     * 日志编号
+     */
+    private String logId;
+
+    /**
+     * 监控类型
+     */
+    private String monitorType;
+
+    /**
+     * 日志文本
+     */
+    private String logText;
+
+    /**
+     * 创建日期
+     */
+    private Date createDate;
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getMonitorId() {
+        return monitorId;
+    }
+
+    public void setMonitorId(Integer monitorId) {
+        this.monitorId = monitorId;
+    }
+
+    public String getLogId() {
+        return logId;
+    }
+
+    public void setLogId(String logId) {
+        this.logId = logId;
+    }
+
+    public String getMonitorType() {
+        return monitorType;
+    }
+
+    public void setMonitorType(String monitorType) {
+        this.monitorType = monitorType;
+    }
+
+    public String getLogText() {
+        return logText;
+    }
+
+    public void setLogText(String logText) {
+        this.logText = logText;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+}

+ 592 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/models/entity/JayMonitorUrlLogExample.java

@@ -0,0 +1,592 @@
+package com.jay.monitor.data.server.models.entity;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+public class JayMonitorUrlLogExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public JayMonitorUrlLogExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdIsNull() {
+            addCriterion("monitor_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdIsNotNull() {
+            addCriterion("monitor_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdEqualTo(Integer value) {
+            addCriterion("monitor_id =", value, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdNotEqualTo(Integer value) {
+            addCriterion("monitor_id <>", value, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdGreaterThan(Integer value) {
+            addCriterion("monitor_id >", value, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("monitor_id >=", value, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdLessThan(Integer value) {
+            addCriterion("monitor_id <", value, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdLessThanOrEqualTo(Integer value) {
+            addCriterion("monitor_id <=", value, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdIn(List<Integer> values) {
+            addCriterion("monitor_id in", values, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdNotIn(List<Integer> values) {
+            addCriterion("monitor_id not in", values, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdBetween(Integer value1, Integer value2) {
+            addCriterion("monitor_id between", value1, value2, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("monitor_id not between", value1, value2, "monitorId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdIsNull() {
+            addCriterion("log_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdIsNotNull() {
+            addCriterion("log_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdEqualTo(String value) {
+            addCriterion("log_id =", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdNotEqualTo(String value) {
+            addCriterion("log_id <>", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdGreaterThan(String value) {
+            addCriterion("log_id >", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdGreaterThanOrEqualTo(String value) {
+            addCriterion("log_id >=", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdLessThan(String value) {
+            addCriterion("log_id <", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdLessThanOrEqualTo(String value) {
+            addCriterion("log_id <=", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdLike(String value) {
+            addCriterion("log_id like", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdNotLike(String value) {
+            addCriterion("log_id not like", value, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdIn(List<String> values) {
+            addCriterion("log_id in", values, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdNotIn(List<String> values) {
+            addCriterion("log_id not in", values, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdBetween(String value1, String value2) {
+            addCriterion("log_id between", value1, value2, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogIdNotBetween(String value1, String value2) {
+            addCriterion("log_id not between", value1, value2, "logId");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeIsNull() {
+            addCriterion("monitor_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeIsNotNull() {
+            addCriterion("monitor_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeEqualTo(String value) {
+            addCriterion("monitor_type =", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotEqualTo(String value) {
+            addCriterion("monitor_type <>", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeGreaterThan(String value) {
+            addCriterion("monitor_type >", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeGreaterThanOrEqualTo(String value) {
+            addCriterion("monitor_type >=", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeLessThan(String value) {
+            addCriterion("monitor_type <", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeLessThanOrEqualTo(String value) {
+            addCriterion("monitor_type <=", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeLike(String value) {
+            addCriterion("monitor_type like", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotLike(String value) {
+            addCriterion("monitor_type not like", value, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeIn(List<String> values) {
+            addCriterion("monitor_type in", values, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotIn(List<String> values) {
+            addCriterion("monitor_type not in", values, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeBetween(String value1, String value2) {
+            addCriterion("monitor_type between", value1, value2, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMonitorTypeNotBetween(String value1, String value2) {
+            addCriterion("monitor_type not between", value1, value2, "monitorType");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextIsNull() {
+            addCriterion("log_text is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextIsNotNull() {
+            addCriterion("log_text is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextEqualTo(String value) {
+            addCriterion("log_text =", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextNotEqualTo(String value) {
+            addCriterion("log_text <>", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextGreaterThan(String value) {
+            addCriterion("log_text >", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextGreaterThanOrEqualTo(String value) {
+            addCriterion("log_text >=", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextLessThan(String value) {
+            addCriterion("log_text <", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextLessThanOrEqualTo(String value) {
+            addCriterion("log_text <=", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextLike(String value) {
+            addCriterion("log_text like", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextNotLike(String value) {
+            addCriterion("log_text not like", value, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextIn(List<String> values) {
+            addCriterion("log_text in", values, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextNotIn(List<String> values) {
+            addCriterion("log_text not in", values, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextBetween(String value1, String value2) {
+            addCriterion("log_text between", value1, value2, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andLogTextNotBetween(String value1, String value2) {
+            addCriterion("log_text not between", value1, value2, "logText");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateIsNull() {
+            addCriterion("create_date is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateIsNotNull() {
+            addCriterion("create_date is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateEqualTo(LocalDate value) {
+            addCriterion("create_date =", value, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateNotEqualTo(LocalDate value) {
+            addCriterion("create_date <>", value, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateGreaterThan(LocalDate value) {
+            addCriterion("create_date >", value, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateGreaterThanOrEqualTo(LocalDate value) {
+            addCriterion("create_date >=", value, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateLessThan(LocalDate value) {
+            addCriterion("create_date <", value, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateLessThanOrEqualTo(LocalDate value) {
+            addCriterion("create_date <=", value, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateIn(List<LocalDate> values) {
+            addCriterion("create_date in", values, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateNotIn(List<LocalDate> values) {
+            addCriterion("create_date not in", values, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateBetween(LocalDate value1, LocalDate value2) {
+            addCriterion("create_date between", value1, value2, "createDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateDateNotBetween(LocalDate value1, LocalDate value2) {
+            addCriterion("create_date not between", value1, value2, "createDate");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     */
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 10 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/AbstractUserProcess.java

@@ -28,4 +28,14 @@ public abstract class AbstractUserProcess<T> extends SyncMultiInterestUserProces
         }
         return array;
     }
+    /**
+     * 监控:
+     * 1. 耗时
+     *
+     * 统计:
+     * 1. 报告
+     *
+     * 告警:
+     * 1. 钉钉
+     */
 }

+ 1 - 1
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/BatchUserProcess.java

@@ -2,7 +2,7 @@ package com.jay.monitor.data.server.process;
 
 import com.alipay.remoting.BizContext;
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
-import com.jay.monitor.data.core.model.serializable.BaseDTO;
+import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 1
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/SQLUserProcess.java

@@ -2,7 +2,7 @@ package com.jay.monitor.data.server.process;
 
 import com.alipay.remoting.BizContext;
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
-import com.jay.monitor.data.core.model.serializable.BaseDTO;
+import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
 import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

+ 64 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/process/URLUserProcess.java

@@ -0,0 +1,64 @@
+package com.jay.monitor.data.server.process;
+
+import com.alibaba.fastjson.JSON;
+import com.alipay.remoting.BizContext;
+import com.jay.monitor.data.core.enums.MonitorDataConstants;
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+import com.jay.monitor.data.server.daos.JayMonitorUrlLogMapper;
+import com.jay.monitor.data.server.daos.JayMonitorUrlMapper;
+import com.jay.monitor.data.server.models.entity.JayMonitorUrl;
+import com.jay.monitor.data.server.models.entity.JayMonitorUrlLog;
+import com.jay.monitor.data.server.utils.DataUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Module TODO
+ * @Description TODO
+ * @Author liukaixiong
+ * @Date 2020/10/23 15:52
+ */
+@Component
+public class URLUserProcess extends AbstractUserProcess<URLDataDTO> {
+
+    private Logger logger = LoggerFactory.getLogger(URLUserProcess.class);
+
+    @Autowired
+    private JayMonitorUrlMapper urlMapper;
+
+    @Autowired
+    private JayMonitorUrlLogMapper urlLogMapper;
+
+    @Override
+    public Object handleRequest0(BizContext bizCtx, URLDataDTO request) throws Exception {
+        logger.info("接收到的URL 传输对象:" + JSON.toJSONString(request));
+
+        JayMonitorUrl monitorUrl = new JayMonitorUrl();
+        BeanUtils.copyProperties(request, monitorUrl);
+        monitorUrl.setApplicationName(DataUtils.getStringValue(request.getApplicationName(), bizCtx.getInvokeContext().get(MonitorDataConstants.INVOKE_CLIENT_NAME)));
+        monitorUrl.setApplicationIp(DataUtils.getStringValue(request.getIp(), bizCtx.getInvokeContext().get(MonitorDataConstants.INVOKE_CLIENT_IP)));
+        monitorUrl.setCreatedDay(request.getCreateDate());
+        monitorUrl.setCreatedTime(request.getCreateDate());
+        int id = urlMapper.insert(monitorUrl);
+
+        JayMonitorUrlLog urlLog = new JayMonitorUrlLog();
+        urlLog.setMonitorId(id);
+        urlLog.setCreateDate(request.getCreateDate());
+        urlLog.setLogId(request.getLogId());
+        urlLog.setLogText(request.getLogMsg());
+        urlLog.setMonitorType(request.getType().name());
+        int logId = urlLogMapper.insert(urlLog);
+
+        return request;
+    }
+
+    @Override
+    public List<String> multiInterest() {
+        return getNamesList(URLDataDTO.class);
+    }
+}

+ 26 - 0
jay-monitor-data-service/src/main/java/com/jay/monitor/data/server/utils/DataUtils.java

@@ -0,0 +1,26 @@
+package com.jay.monitor.data.server.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @Module 工具类
+ * @Description 数据处理
+ * @Author liukaixiong
+ * @Date 2020/10/23 16:28
+ */
+public class DataUtils {
+
+    /**
+     * 获取String的值,没有则获取默认值
+     *
+     * @param value        值
+     * @param defaultValue 默认值
+     * @return
+     */
+    public static String getStringValue(String value, String defaultValue) {
+        if (StringUtils.isEmpty(value)) {
+            return defaultValue;
+        }
+        return value;
+    }
+}

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

@@ -1,11 +1,12 @@
 debug: false
 server:
   port: 5800
-  context-path: /
   tomcat:
     max-threads: 2000
     uri-encoding: UTF-8
     max-connections: 1000
+  servlet:
+    context-path: /
 
 feign:
   client:

+ 7 - 68
jay-monitor-data-service/src/main/resources/application-dev.yml

@@ -1,68 +1,7 @@
-debug: false
-server:
-  port: 5800
-  tomcat:
-    max-threads: 2000
-    uri-encoding: UTF-8
-
-feign:
-  client:
-    config:
-      default:
-        connectTimeout: 10000
-        readTimeout: 10000
-  hystrix:
-   enabled: true
-  httpclient:
-    connection-timeout: 10000
-
-eureka:
-  instance: 
-    prefer-ip-address: true
-    lease-renewal-interval-in-seconds: 10
-    lease-expiration-duration-in-seconds: 20
-    status-page-url-path: /health
-  client:
-    registry-fetch-interval-seconds: 10 #表示eureka client间隔多久去拉取服务注册信息 在网关使用
-    service-url:
-#      defaultZone: http://127.0.0.1:5100/eureka/
-      defaultZone: http://192.168.0.16:5100/eureka/
-    fetch-registry: true
-    register-with-eureka: true
-
-default:
-  minIdle: 10
-  validationQuery: SELECT 1
-  initialSize: 5
-  maxWait: 60000
-  filters: wall,stat
-  poolPreparedStatements: true
-  url: jdbc:mysql://192.168.0.13/elab_db?characterEncoding=UTF-8&connectTimeout=60000&socketTimeout=60000
-  logAbandoned: true
-  password: elab@123
-  maxOpenPreparedStatements: 1
-  testOnBorrow: false
-  testWhileIdle: true
-  removeAbandoned: true
-  minEvictableIdleTimeMillis: 300000
-  timeBetweenEvictionRunsMillis: 60000
-  testOnReturn: false
-  removeAbandonedTimeout: 3600
-  driverClassName: com.mysql.jdbc.Driver
-  querytimeout: 2400
-  maxActive: 50
-  username: root
-
-swagger2: 
-  basePackage: com.jay.monitor.data.server.controllers
-  title: backstage
-  description: 后台服务
-  termsOfServiceUrl: http://www.elab-plus.com
-  licenseUrl: http://127.0.0.1:5301/doc.html
-  version: 1.0.0
-  enable: true
-  docUrl: /v2/api-docs
-
-management:
-  security:
-    enabled: false
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driver-class-name: com.mysql.jdbc.Driver
+    url: jdbc:mysql://192.168.0.13:3306/elab_db?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior\
+    username: root
+    password: elab@123

+ 3 - 2
jay-monitor-data-service/src/main/resources/application-test.yml

@@ -1,15 +1,16 @@
 debug: false
 server:
   port: 5800
-  context-path: /
   tomcat:
     max-threads: 2000
     uri-encoding: UTF-8
+  servlet:
+    context-path: /
 
 spring:
   application:
     name: elab-marketing-authentication
-  http:
+  servlet:
     multipart:
       max-request-size: 1MB
       max-file-size: 1MB

+ 1 - 1
jay-monitor-data-service/src/main/resources/application-uat.yml

@@ -10,7 +10,7 @@ app.name: uat-elab-backstage-service
 spring:
   application:
     name: elab-backstage-service
-  http:
+  servlet:
     multipart:
       max-request-size: 1MB
       max-file-size: 1MB

+ 35 - 7
jay-monitor-data-service/src/main/resources/application.yml

@@ -1,8 +1,13 @@
+server:
+  port: 5800
+  tomcat:
+    max-threads: 2000
+    uri-encoding: UTF-8
 spring:
   profiles:
     active: dev
   application:
-    name: elab-backstage-web
+    name: jay-monitor-server
   http:
     encoding:
       charset: UTF-8
@@ -22,14 +27,37 @@ spring:
         content:
           enabled: true
           paths: /**
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://192.168.0.13:3306/elab_db?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior\
-    username: root
-    password: elab@123
 mybatis-plus:
   mapper-locations: classpath*:/mybatis/mapper/*.xml,classpath:mybatis/mapper/ext/*.xml
   type-aliases-package: com.jay.monitor.data.server.daos
   config-location: classpath:/mybatis/mybatis-config.xml
 
+swagger2:
+  basePackage: com.jay.monitor.data.server.controllers
+  title: backstage
+  description: 后台服务
+  termsOfServiceUrl: http://www.elab-plus.com
+  licenseUrl: http://127.0.0.1:5301/doc.html
+  version: 1.0.0
+  enable: true
+  docUrl: /v2/api-docs
+
+#sofa:
+#  middleware:
+#    log:
+#      com:
+#        alipay:
+#          remoting:
+#            console: true
+
+
+#sofa:
+#  middleware:
+#    log:
+#      com:
+#        alipay:
+#          remoting:
+#            console: true
+#  middleware:
+#    log:
+#      disable: true

+ 209 - 0
jay-monitor-data-service/src/main/resources/com/alipay/remoting/log/logback/log-conf.xml

@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="GBK"?>
+
+<!-- Logback config -->
+<configuration>
+    <property scope="local" name="LOG_HOME" value="${logging.path}/bolt"/>
+    <property scope="local" name="LOG_LEVEL" value="${com.alipay.remoting.client.log.level}"/>
+    <property scope="local" name="LOG_ENCODE" value="${com.alipay.remoting.client.log.encode}"/>
+
+    <!-- appenders -->
+    <appender name="CommonDefaultAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <append>true</append>
+        <filters>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>ERROR</level>
+                <onMatch>DENY</onMatch>
+            </filter>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>${LOG_LEVEL}</level>
+                <onMatch>ACCEPT</onMatch>
+            </filter>
+        </filters>
+        <file>${LOG_HOME}/common-default.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}/common-default.log.%d{yyyy-MM-dd}</FileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <appender name="ConnectionEventAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <append>true</append>
+        <filters>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>ERROR</level>
+                <onMatch>DENY</onMatch>
+            </filter>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>${LOG_LEVEL}</level>
+                <onMatch>ACCEPT</onMatch>
+            </filter>
+        </filters>
+        <file>${LOG_HOME}/connection-event.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}/connection-event.log.%d{yyyy-MM-dd}</FileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <appender name="RpcRemotingAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <append>true</append>
+        <filters>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>ERROR</level>
+                <onMatch>DENY</onMatch>
+            </filter>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>${LOG_LEVEL}</level>
+                <onMatch>ACCEPT</onMatch>
+            </filter>
+        </filters>
+        <file>${LOG_HOME}/remoting-rpc.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}/remoting-rpc.log.%d{yyyy-MM-dd}</FileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <appender name="TrAdapterRemotingAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <append>true</append>
+        <filters>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>ERROR</level>
+                <onMatch>DENY</onMatch>
+            </filter>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>${LOG_LEVEL}</level>
+                <onMatch>ACCEPT</onMatch>
+            </filter>
+        </filters>
+        <file>${LOG_HOME}/remoting-tr-adapter.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}/remoting-tr-adapter.log.%d{yyyy-MM-dd}</FileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <appender name="MsgRemotingAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <append>true</append>
+        <filters>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>ERROR</level>
+                <onMatch>DENY</onMatch>
+            </filter>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>${LOG_LEVEL}</level>
+                <onMatch>ACCEPT</onMatch>
+            </filter>
+        </filters>
+        <file>${LOG_HOME}/remoting-msg.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}/remoting-msg.log.%d{yyyy-MM-dd}</FileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <appender name="HttpRemotingAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <append>true</append>
+        <filters>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>ERROR</level>
+                <onMatch>DENY</onMatch>
+            </filter>
+            <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                <level>${LOG_LEVEL}</level>
+                <onMatch>ACCEPT</onMatch>
+            </filter>
+        </filters>
+        <file>${LOG_HOME}/remoting-http.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}/remoting-http.log.%d{yyyy-MM-dd}</FileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <append>true</append>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <file>${LOG_HOME}/common-error.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${LOG_HOME}/common-error.log.%d{yyyy-MM-dd}</FileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d %-5p [%C{0}#%L] [%t] %m%n</pattern>
+            <charset>${LOG_ENCODE}</charset>
+        </encoder>
+    </appender>
+
+    <!-- loggers -->
+    <logger name="CommonDefault" level="${LOG_LEVEL}" additivity="false">
+        <appender-ref ref="CommonDefaultAppender"/>
+        <appender-ref ref="ERROR-APPENDER"/>
+    </logger>
+
+    <logger name="ConnectionEvent" level="${LOG_LEVEL}" additivity="false">
+        <appender-ref ref="ConnectionEventAppender"/>
+        <appender-ref ref="ERROR-APPENDER"/>
+    </logger>
+
+    <logger name="RpcRemoting" level="${LOG_LEVEL}" additivity="false">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="RpcRemotingAppender"/>
+        <appender-ref ref="ERROR-APPENDER"/>
+    </logger>
+
+    <logger name="TrAdapterRemoting" level="${LOG_LEVEL}" additivity="false">
+        <appender-ref ref="TrAdapterRemotingAppender"/>
+        <appender-ref ref="ERROR-APPENDER"/>
+    </logger>
+
+    <logger name="MsgRemoting" level="${LOG_LEVEL}" additivity="false">
+        <appender-ref ref="MsgRemotingAppender"/>
+        <appender-ref ref="ERROR-APPENDER"/>
+    </logger>
+
+    <logger name="HttpRemoting" level="${LOG_LEVEL}" additivity="false">
+        <appender-ref ref="HttpRemotingAppender"/>
+        <appender-ref ref="ERROR-APPENDER"/>
+    </logger>
+
+    <root level="${LOG_LEVEL}">
+        <appender-ref ref="CommonDefaultAppender"/>
+        <appender-ref ref="ERROR-APPENDER"/>
+    </root>
+</configuration>

+ 14 - 4
jay-monitor-data-service/src/main/resources/logback.xml

@@ -4,8 +4,8 @@
     <jmxConfigurator/>
     <property name="LOG_PATH" value="logs"/>
 
-    <appender name="elab-backstage-service" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <File>${LOG_PATH}/elab-backstage-service.log</File>
+    <appender name="info-log" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${LOG_PATH}/jay-monitor-data-service.log</File>
         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
             <fileNamePattern>${LOG_PATH}/%d{yyyyMMdd}/%d{yyyyMMdd}-%i.log</fileNamePattern>
             <maxHistory>30</maxHistory>
@@ -26,7 +26,7 @@
     <appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
         <discardingThreshold>0</discardingThreshold>
         <queueSize>10000</queueSize>
-        <appender-ref ref="elab-backstage-service"/>
+        <appender-ref ref="info-log"/>
         <neverBlock>true</neverBlock>
     </appender>
 
@@ -40,10 +40,20 @@
         </encoder>
     </appender>
 
+    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder charset="UTF-8">
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+    </appender>
+
+    <logger name="com.jay.monitor.data.server" level="INFO" additivity="false">
+        <appender-ref ref="stdout"/>
+    </logger>
+
     <root level="info">
         <appender-ref ref="console"></appender-ref>
         <appender-ref ref="ASYNC_FILE"></appender-ref>
         <!--        <appender-ref ref="cat"/>-->
     </root>
-    <logger name="com.elab" level="debug"/>
+    <logger name="com.jay.monitor" level="debug"/>
 </configuration>

+ 220 - 0
jay-monitor-data-service/src/main/resources/mybatis/mapper/JayMonitorUrlLogMapper.xml

@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jay.monitor.data.server.daos.JayMonitorUrlLogMapper">
+  <resultMap id="BaseResultMap" type="com.jay.monitor.data.server.models.entity.JayMonitorUrlLog">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="monitor_id" jdbcType="INTEGER" property="monitorId" />
+    <result column="log_id" jdbcType="VARCHAR" property="logId" />
+    <result column="monitor_type" jdbcType="VARCHAR" property="monitorType" />
+    <result column="log_text" jdbcType="VARCHAR" property="logText" />
+    <result column="create_date" jdbcType="DATE" property="createDate" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, monitor_id, log_id, monitor_type, log_text, create_date
+  </sql>
+  <select id="selectByExample" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlLogExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from jay_monitor_url_log
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from jay_monitor_url_log
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from jay_monitor_url_log
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlLogExample">
+    delete from jay_monitor_url_log
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlLog" useGeneratedKeys="true">
+    insert into jay_monitor_url_log (monitor_id, log_id, monitor_type, 
+      log_text, create_date)
+    values (#{monitorId,jdbcType=INTEGER}, #{logId,jdbcType=VARCHAR}, #{monitorType,jdbcType=VARCHAR}, 
+      #{logText,jdbcType=VARCHAR}, #{createDate,jdbcType=DATE})
+  </insert>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlLog" useGeneratedKeys="true">
+    insert into jay_monitor_url_log
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="monitorId != null">
+        monitor_id,
+      </if>
+      <if test="logId != null">
+        log_id,
+      </if>
+      <if test="monitorType != null">
+        monitor_type,
+      </if>
+      <if test="logText != null">
+        log_text,
+      </if>
+      <if test="createDate != null">
+        create_date,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="monitorId != null">
+        #{monitorId,jdbcType=INTEGER},
+      </if>
+      <if test="logId != null">
+        #{logId,jdbcType=VARCHAR},
+      </if>
+      <if test="monitorType != null">
+        #{monitorType,jdbcType=VARCHAR},
+      </if>
+      <if test="logText != null">
+        #{logText,jdbcType=VARCHAR},
+      </if>
+      <if test="createDate != null">
+        #{createDate,jdbcType=DATE},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlLogExample" resultType="java.lang.Long">
+    select count(*) from jay_monitor_url_log
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update jay_monitor_url_log
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.monitorId != null">
+        monitor_id = #{record.monitorId,jdbcType=INTEGER},
+      </if>
+      <if test="record.logId != null">
+        log_id = #{record.logId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.monitorType != null">
+        monitor_type = #{record.monitorType,jdbcType=VARCHAR},
+      </if>
+      <if test="record.logText != null">
+        log_text = #{record.logText,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createDate != null">
+        create_date = #{record.createDate,jdbcType=DATE},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update jay_monitor_url_log
+    set id = #{record.id,jdbcType=INTEGER},
+      monitor_id = #{record.monitorId,jdbcType=INTEGER},
+      log_id = #{record.logId,jdbcType=VARCHAR},
+      monitor_type = #{record.monitorType,jdbcType=VARCHAR},
+      log_text = #{record.logText,jdbcType=VARCHAR},
+      create_date = #{record.createDate,jdbcType=DATE}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlLog">
+    update jay_monitor_url_log
+    <set>
+      <if test="monitorId != null">
+        monitor_id = #{monitorId,jdbcType=INTEGER},
+      </if>
+      <if test="logId != null">
+        log_id = #{logId,jdbcType=VARCHAR},
+      </if>
+      <if test="monitorType != null">
+        monitor_type = #{monitorType,jdbcType=VARCHAR},
+      </if>
+      <if test="logText != null">
+        log_text = #{logText,jdbcType=VARCHAR},
+      </if>
+      <if test="createDate != null">
+        create_date = #{createDate,jdbcType=DATE},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlLog">
+    update jay_monitor_url_log
+    set monitor_id = #{monitorId,jdbcType=INTEGER},
+      log_id = #{logId,jdbcType=VARCHAR},
+      monitor_type = #{monitorType,jdbcType=VARCHAR},
+      log_text = #{logText,jdbcType=VARCHAR},
+      create_date = #{createDate,jdbcType=DATE}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>

+ 300 - 0
jay-monitor-data-service/src/main/resources/mybatis/mapper/JayMonitorUrlMapper.xml

@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jay.monitor.data.server.daos.JayMonitorUrlMapper">
+  <resultMap id="BaseResultMap" type="com.jay.monitor.data.server.models.entity.JayMonitorUrl">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="application_name" jdbcType="VARCHAR" property="applicationName" />
+    <result column="application_ip" jdbcType="VARCHAR" property="applicationIp" />
+    <result column="monitor_type" jdbcType="VARCHAR" property="monitorType" />
+    <result column="data_group_name" jdbcType="VARCHAR" property="dataGroupName" />
+    <result column="data_group_key" jdbcType="VARCHAR" property="dataGroupKey" />
+    <result column="data_id" jdbcType="VARCHAR" property="dataId" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="request_time" jdbcType="INTEGER" property="requestTime" />
+    <result column="created_time" jdbcType="TIMESTAMP" property="createdTime" />
+    <result column="created_day" jdbcType="DATE" property="createdDay" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, application_name, application_ip, monitor_type, data_group_name, data_group_key, 
+    data_id, `status`, request_time, created_time, created_day
+  </sql>
+  <select id="selectByExample" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from jay_monitor_url
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from jay_monitor_url
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from jay_monitor_url
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlExample">
+    delete from jay_monitor_url
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrl" useGeneratedKeys="true">
+    insert into jay_monitor_url (application_name, application_ip, monitor_type, 
+      data_group_name, data_group_key, data_id, 
+      `status`, request_time, created_time, 
+      created_day)
+    values (#{applicationName,jdbcType=VARCHAR}, #{applicationIp,jdbcType=VARCHAR}, #{monitorType,jdbcType=VARCHAR}, 
+      #{dataGroupName,jdbcType=VARCHAR}, #{dataGroupKey,jdbcType=VARCHAR}, #{dataId,jdbcType=VARCHAR}, 
+      #{status,jdbcType=INTEGER}, #{requestTime,jdbcType=INTEGER}, #{createdTime,jdbcType=TIMESTAMP}, 
+      #{createdDay,jdbcType=DATE})
+  </insert>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrl" useGeneratedKeys="true">
+    insert into jay_monitor_url
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="applicationName != null">
+        application_name,
+      </if>
+      <if test="applicationIp != null">
+        application_ip,
+      </if>
+      <if test="monitorType != null">
+        monitor_type,
+      </if>
+      <if test="dataGroupName != null">
+        data_group_name,
+      </if>
+      <if test="dataGroupKey != null">
+        data_group_key,
+      </if>
+      <if test="dataId != null">
+        data_id,
+      </if>
+      <if test="status != null">
+        `status`,
+      </if>
+      <if test="requestTime != null">
+        request_time,
+      </if>
+      <if test="createdTime != null">
+        created_time,
+      </if>
+      <if test="createdDay != null">
+        created_day,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="applicationName != null">
+        #{applicationName,jdbcType=VARCHAR},
+      </if>
+      <if test="applicationIp != null">
+        #{applicationIp,jdbcType=VARCHAR},
+      </if>
+      <if test="monitorType != null">
+        #{monitorType,jdbcType=VARCHAR},
+      </if>
+      <if test="dataGroupName != null">
+        #{dataGroupName,jdbcType=VARCHAR},
+      </if>
+      <if test="dataGroupKey != null">
+        #{dataGroupKey,jdbcType=VARCHAR},
+      </if>
+      <if test="dataId != null">
+        #{dataId,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="requestTime != null">
+        #{requestTime,jdbcType=INTEGER},
+      </if>
+      <if test="createdTime != null">
+        #{createdTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createdDay != null">
+        #{createdDay,jdbcType=DATE},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrlExample" resultType="java.lang.Long">
+    select count(*) from jay_monitor_url
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update jay_monitor_url
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.applicationName != null">
+        application_name = #{record.applicationName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.applicationIp != null">
+        application_ip = #{record.applicationIp,jdbcType=VARCHAR},
+      </if>
+      <if test="record.monitorType != null">
+        monitor_type = #{record.monitorType,jdbcType=VARCHAR},
+      </if>
+      <if test="record.dataGroupName != null">
+        data_group_name = #{record.dataGroupName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.dataGroupKey != null">
+        data_group_key = #{record.dataGroupKey,jdbcType=VARCHAR},
+      </if>
+      <if test="record.dataId != null">
+        data_id = #{record.dataId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.status != null">
+        `status` = #{record.status,jdbcType=INTEGER},
+      </if>
+      <if test="record.requestTime != null">
+        request_time = #{record.requestTime,jdbcType=INTEGER},
+      </if>
+      <if test="record.createdTime != null">
+        created_time = #{record.createdTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.createdDay != null">
+        created_day = #{record.createdDay,jdbcType=DATE},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update jay_monitor_url
+    set id = #{record.id,jdbcType=INTEGER},
+      application_name = #{record.applicationName,jdbcType=VARCHAR},
+      application_ip = #{record.applicationIp,jdbcType=VARCHAR},
+      monitor_type = #{record.monitorType,jdbcType=VARCHAR},
+      data_group_name = #{record.dataGroupName,jdbcType=VARCHAR},
+      data_group_key = #{record.dataGroupKey,jdbcType=VARCHAR},
+      data_id = #{record.dataId,jdbcType=VARCHAR},
+      `status` = #{record.status,jdbcType=INTEGER},
+      request_time = #{record.requestTime,jdbcType=INTEGER},
+      created_time = #{record.createdTime,jdbcType=TIMESTAMP},
+      created_day = #{record.createdDay,jdbcType=DATE}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrl">
+    update jay_monitor_url
+    <set>
+      <if test="applicationName != null">
+        application_name = #{applicationName,jdbcType=VARCHAR},
+      </if>
+      <if test="applicationIp != null">
+        application_ip = #{applicationIp,jdbcType=VARCHAR},
+      </if>
+      <if test="monitorType != null">
+        monitor_type = #{monitorType,jdbcType=VARCHAR},
+      </if>
+      <if test="dataGroupName != null">
+        data_group_name = #{dataGroupName,jdbcType=VARCHAR},
+      </if>
+      <if test="dataGroupKey != null">
+        data_group_key = #{dataGroupKey,jdbcType=VARCHAR},
+      </if>
+      <if test="dataId != null">
+        data_id = #{dataId,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        `status` = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="requestTime != null">
+        request_time = #{requestTime,jdbcType=INTEGER},
+      </if>
+      <if test="createdTime != null">
+        created_time = #{createdTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createdDay != null">
+        created_day = #{createdDay,jdbcType=DATE},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.jay.monitor.data.server.models.entity.JayMonitorUrl">
+    update jay_monitor_url
+    set application_name = #{applicationName,jdbcType=VARCHAR},
+      application_ip = #{applicationIp,jdbcType=VARCHAR},
+      monitor_type = #{monitorType,jdbcType=VARCHAR},
+      data_group_name = #{dataGroupName,jdbcType=VARCHAR},
+      data_group_key = #{dataGroupKey,jdbcType=VARCHAR},
+      data_id = #{dataId,jdbcType=VARCHAR},
+      `status` = #{status,jdbcType=INTEGER},
+      request_time = #{requestTime,jdbcType=INTEGER},
+      created_time = #{createdTime,jdbcType=TIMESTAMP},
+      created_day = #{createdDay,jdbcType=DATE}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>

+ 20 - 7
jay-monitor-data-service/src/test/java/com/jay/monitor/data/server/MonitorDataServerTest.java

@@ -3,15 +3,15 @@ package com.jay.monitor.data.server;
 import com.alipay.remoting.InvokeContext;
 import com.alipay.remoting.rpc.RpcClient;
 import com.jay.monitor.data.core.enums.MsgTypeEnums;
-import com.jay.monitor.data.core.model.serializable.BaseDTO;
 import com.jay.monitor.data.core.model.serializable.SQLMonitorDTO;
+import com.jay.monitor.data.core.model.serializable.URLDataDTO;
+import com.jay.monitor.data.core.model.serializable.base.BaseDTO;
 import com.jay.monitor.data.server.model.TestDataRequest;
-import com.jay.monitor.data.server.process.BatchUserProcess;
-import com.jay.monitor.data.server.process.SQLUserProcess;
 import org.junit.Before;
 import org.junit.Test;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 public class MonitorDataServerTest {
@@ -25,10 +25,11 @@ public class MonitorDataServerTest {
         rpcClient = new RpcClient();
         rpcClient.startup();
 
-        MonitorDataServer monitorDataServer = new MonitorDataServer(9420);
-        monitorDataServer.registerUserProcessor(new SQLUserProcess());
-        monitorDataServer.registerUserProcessor(new BatchUserProcess());
-        monitorDataServer.start();
+//        MonitorDataServer monitorDataServer = new MonitorDataServer(9420);
+//        monitorDataServer.registerUserProcessor(new SQLUserProcess());
+//        monitorDataServer.registerUserProcessor(new URLUserProcess());
+//        monitorDataServer.registerUserProcessor(new BatchUserProcess());
+//        monitorDataServer.start();
     }
 
     @Test
@@ -57,4 +58,16 @@ public class MonitorDataServerTest {
             Thread.sleep(5000);
         }
     }
+
+    @Test
+    public void testURLDTO() throws Exception {
+        URLDataDTO dto = new URLDataDTO();
+        dto.setApplicationName("elab-markting-test");
+        dto.setIp("0:0:0:0");
+        dto.setGroupName("A");
+        dto.setDataId("123123");
+        dto.setCreateDate(new Date());
+        rpcClient.oneway(addr, dto, new InvokeContext());
+        Thread.sleep(5000);
+    }
 }

+ 5 - 0
pom.xml

@@ -136,6 +136,11 @@
                 <artifactId>commons-beanutils</artifactId>
                 <version>1.9.3</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-lang3</artifactId>
+                <version>3.8.1</version>
+            </dependency>
             <dependency>
                 <groupId>com.netflix.zuul</groupId>
                 <artifactId>zuul-core</artifactId>

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

@@ -7,6 +7,13 @@
 - 客户端在线列表
 - 客户端在线离线告警
 
+
+涉及客户端: 
+- zuul      -       URL
+- druid     -       SQL
+- redis     -       CACHE
+- rocketmq        -       MQ
+
 ## 网关
 
 ### **路由管理**