Bläddra i källkod

change server

何知谦 4 år sedan
förälder
incheckning
605d6a2157
17 ändrade filer med 460 tillägg och 387 borttagningar
  1. 9 5
      PaasMonitor-client/src/main/java/com/nju/edu/paasMonitorClient/consumer/MonitorConsumer.java
  2. 10 6
      PaasMonitor-client/src/main/java/com/nju/edu/paasMonitorClient/entity/Call.java
  3. BIN
      PaasMonitor-client/target/classes/com/nju/edu/paasMonitorClient/MonitorClient.class
  4. BIN
      PaasMonitor-client/target/classes/com/nju/edu/paasMonitorClient/consumer/MonitorConsumer.class
  5. 170 0
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorConfigController.java
  6. 0 343
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorController.java
  7. 34 0
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorEnumController.java
  8. 75 0
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorLogController.java
  9. 132 0
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorReportController.java
  10. 2 2
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Call.java
  11. 3 3
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Error.java
  12. 1 1
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Event.java
  13. 4 4
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Message.java
  14. 2 2
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Metric.java
  15. 0 3
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/process/MessageDistributor.java
  16. 1 1
      PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/process/analyzer/Analyzer.java
  17. 17 17
      sql/paasMonitor.sql

+ 9 - 5
PaasMonitor-client/src/main/java/com/nju/edu/paasMonitorClient/consumer/MonitorConsumer.java

@@ -37,12 +37,16 @@ public class MonitorConsumer implements Runnable {
     }
 
     public void add(Message message) {
-        boolean success = messageQueue.offer(message);
-        if (!success) {
-            mqErrorCount++;
-            if (mqErrorCount == 1 || mqErrorCount % 50 == 0) {
-                log.error("Can't add message to queue");
+        try {
+            boolean success = messageQueue.offer(message);
+            if (!success) {
+                mqErrorCount++;
+                if (mqErrorCount == 1 || mqErrorCount % 50 == 0) {
+                    log.error("Can't add message to queue");
+                }
             }
+        } catch (Throwable throwable) {
+            log.error("Unknown Exception", throwable);
         }
     }
 

+ 10 - 6
PaasMonitor-client/src/main/java/com/nju/edu/paasMonitorClient/entity/Call.java

@@ -23,12 +23,16 @@ public class Call extends Message {
     }
 
     public Call(SeecSystem system, String category) {
-        this.system = system.getVal();
-        this.category = category;
-        String clazz = Thread.currentThread().getStackTrace()[2].getClassName();
-        String method = Thread.currentThread().getStackTrace()[2].getMethodName();
-        this.name = clazz + "." + method;
-        this.createTime = System.currentTimeMillis();
+        try {
+            this.system = system.getVal();
+            this.category = category;
+            String clazz = Thread.currentThread().getStackTrace()[2].getClassName();
+            String method = Thread.currentThread().getStackTrace()[2].getMethodName();
+            this.name = clazz + "." + method;
+            this.createTime = System.currentTimeMillis();
+        }
+        catch (Exception ignored){
+        }
     }
 
     public void start() {

BIN
PaasMonitor-client/target/classes/com/nju/edu/paasMonitorClient/MonitorClient.class


BIN
PaasMonitor-client/target/classes/com/nju/edu/paasMonitorClient/consumer/MonitorConsumer.class


+ 170 - 0
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorConfigController.java

@@ -0,0 +1,170 @@
+package com.nju.edu.paasMonitorServer.controller;
+
+import com.nju.edu.paasMonitorServer.alert.entity.vo.AddConfigVO;
+import com.nju.edu.paasMonitorServer.alert.entity.vo.Config;
+import com.nju.edu.paasMonitorServer.alert.entity.vo.alertmail.AlertMail;
+import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceiver.AddAlertReceiverVO;
+import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceiver.AlertReceiver;
+import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceivergroup.AddAlertReceiverGroupVO;
+import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceivergroup.AlertReceiverGroup;
+import com.nju.edu.paasMonitorServer.alert.service.ConfigService;
+import com.nju.edu.paasMonitorServer.web.response.Response;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping(value = "/api/config", produces = "application/json")
+@Slf4j
+public class PaasMonitorConfigController {
+    private final ConfigService configService;
+
+    @Autowired
+    public PaasMonitorConfigController(
+            ConfigService configService
+    ){
+        this.configService = configService;
+    }
+
+    @GetMapping("/get")
+    public Response<List<Config>> getConfigByType(
+            @RequestParam int type
+    ) {
+        List<Config> configs = configService.getConfigByType(type);
+        Response<List<Config>> response = new Response<>();
+        response.ok();
+        response.setData(configs);
+        return response;
+    }
+
+    @PostMapping("/add")
+    public Response<Config> addConfig(
+            @RequestBody AddConfigVO config
+    ) {
+        Config res = configService.addConfig(config);
+        Response<Config> response = new Response<>();
+        response.ok();
+        response.setData(res);
+        return response;
+    }
+
+    @PostMapping("/update")
+    public Response<Config> updateConfig(
+            @RequestBody Config config
+    ) {
+        Config config1 = configService.updateConfig(config);
+        Response<Config> response = new Response<>();
+        response.ok();
+        response.setData(config1);
+        return response;
+    }
+
+    @PostMapping("/delete")
+    public Response<Long> deleteConfig(
+            @RequestParam long id
+    ) {
+        configService.deleteConfig(id);
+        Response<Long> response = new Response<>();
+        response.ok();
+        response.setData(id);
+        return response;
+    }
+
+    @GetMapping("/receiver/get")
+    public Response<List<AlertReceiver>> getAlertReceiver() {
+        List<AlertReceiver> data = configService.getAlertReceiver();
+        Response<List<AlertReceiver>> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @PostMapping("/receiver/add")
+    public Response<AlertReceiver> addAlertReceiver(
+            @RequestBody AddAlertReceiverVO addAlertReceiverVO
+    ) {
+        AlertReceiver data = configService.addAlertReceiver(addAlertReceiverVO);
+        Response<AlertReceiver> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @PostMapping("/receiver/update")
+    public Response<AlertReceiver> updateAlertReceiver(
+            @RequestBody AlertReceiver alertReceiver
+    ) {
+        AlertReceiver data = configService.updateAlertReceiver(alertReceiver);
+        Response<AlertReceiver> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @PostMapping("/receiver/delete")
+    public Response<Long> deleteAlertReceiver(
+            @RequestParam long id
+    ) {
+        long data = configService.deleteAlertReceiver(id);
+        Response<Long> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @GetMapping("/alertMail")
+    public Response<List<AlertMail>> getAlertMail(
+            @RequestParam long startTime,
+            @RequestParam long endTime
+    ){
+        List<AlertMail> data = configService.getAlertMail(startTime, endTime);
+        Response<List<AlertMail>> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @GetMapping("/receiverGroup/get")
+    public Response<List<AlertReceiverGroup>> getAlertReceiverGroup() {
+        List<AlertReceiverGroup> data = configService.getAlertReceiverGroup();
+        Response<List<AlertReceiverGroup>> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @PostMapping("/receiverGroup/add")
+    public Response<AlertReceiverGroup> addAlertReceiverGroup(
+            @RequestBody AddAlertReceiverGroupVO addAlertReceiverGroupVO
+    ) {
+        AlertReceiverGroup data = configService.addAlertReceiverGroup(addAlertReceiverGroupVO);
+        Response<AlertReceiverGroup> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @PostMapping("/receiverGroup/update")
+    public Response<AlertReceiverGroup> updateAlertReceiverGroup(
+            @RequestBody AlertReceiverGroup alertReceiverGroup
+    ) {
+        AlertReceiverGroup data = configService.updateAlertReceiverGroup(alertReceiverGroup);
+        Response<AlertReceiverGroup> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+
+    @PostMapping("/receiverGroup/delete")
+    public Response<Long> deleteAlertReceiverGroup(
+            @RequestParam long id
+    ) {
+        long data = configService.deleteAlertReceiverGroup(id);
+        Response<Long> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+}

+ 0 - 343
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorController.java

@@ -1,343 +0,0 @@
-package com.nju.edu.paasMonitorServer.controller;
-
-import com.nju.edu.paasMonitorCommon.dto.CallDto;
-import com.nju.edu.paasMonitorCommon.dto.ErrorDto;
-import com.nju.edu.paasMonitorCommon.dto.EventDto;
-import com.nju.edu.paasMonitorCommon.dto.MetricDto;
-import com.nju.edu.paasMonitorServer.alert.entity.vo.AddConfigVO;
-import com.nju.edu.paasMonitorServer.alert.entity.vo.Config;
-import com.nju.edu.paasMonitorServer.alert.entity.vo.alertmail.AlertMail;
-import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceiver.AddAlertReceiverVO;
-import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceiver.AlertReceiver;
-import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceivergroup.AddAlertReceiverGroupVO;
-import com.nju.edu.paasMonitorServer.alert.entity.vo.alertreceivergroup.AlertReceiverGroup;
-import com.nju.edu.paasMonitorServer.alert.service.ConfigService;
-import com.nju.edu.paasMonitorServer.entity.vo.Error;
-import com.nju.edu.paasMonitorServer.entity.vo.*;
-import com.nju.edu.paasMonitorServer.entity.vo.item.SystemLevel;
-import com.nju.edu.paasMonitorServer.entity.vo.item.metric.MetricGraphVO;
-import com.nju.edu.paasMonitorServer.entity.vo.report.LevelReportVO;
-import com.nju.edu.paasMonitorServer.entity.vo.report.MetricReportVO;
-import com.nju.edu.paasMonitorServer.service.EnumService;
-import com.nju.edu.paasMonitorServer.service.MessageService;
-import com.nju.edu.paasMonitorServer.web.response.Response;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequestMapping(value = "/api", produces = "application/json")
-@Slf4j
-public class PaasMonitorController {
-    private final MessageService messageService;
-    private final EnumService enumService;
-    private final ConfigService configService;
-
-    @Autowired
-    public PaasMonitorController(
-            MessageService messageService,
-            EnumService enumService,
-            ConfigService configService
-    ) {
-        this.messageService = messageService;
-        this.enumService = enumService;
-        this.configService = configService;
-    }
-
-    @PostMapping("/log/event")
-    public Response<String> log(@RequestBody EventDto message) {
-        Event event = new Event(message.getSystem(), message.getCategory(),
-                message.getName(), message.getCreateTime(), message.getStatus());
-        messageService.collectMessage(event);
-        Response<String> response = new Response<>();
-        response.ok();
-        return response;
-    }
-
-    @PostMapping("/log/error")
-    public Response<String> log(@RequestBody ErrorDto message) {
-        Error error = new Error(message.getSystem(), message.getCategory(),
-                message.getName(), message.getCreateTime(), message.getMessage(),
-                message.getExceptionInfo(), message.getStackTrace());
-        messageService.collectMessage(error);
-        Response<String> response = new Response<>();
-        response.ok();
-        return response;
-    }
-
-    @PostMapping("/log/call")
-    public Response<String> log(@RequestBody CallDto message) {
-        Call call = new Call(message.getSystem(), message.getCategory(),
-                message.getName(), message.getCreateTime(), message.getDuration(),
-                message.getStatus());
-        messageService.collectMessage(call);
-        Response<String> response = new Response<>();
-        response.ok();
-        return response;
-    }
-
-    @PostMapping("/log/metric")
-    public Response<String> log(@RequestBody MetricDto message) {
-        Metric metric = new Metric(message.getSystem(), message.getCategory(),
-                message.getName(), message.getCreateTime(), message.getCount(), message.getType());
-        messageService.collectMessage(metric);
-        Response<String> response = new Response<>();
-        response.ok();
-        return response;
-    }
-
-    @GetMapping("/report/call")
-    public Response<LevelReportVO> getCallReport(
-            @RequestParam long startTime,
-            @RequestParam long endTime
-    ) {
-        List<SystemLevel> data = messageService.getCallByTime(startTime, endTime);
-        Response<LevelReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new LevelReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/report/call/system")
-    public Response<LevelReportVO> getCallReportBySystem(
-            @RequestParam long startTime,
-            @RequestParam long endTime,
-            @RequestParam int systemId
-    ) {
-        List<SystemLevel> data = messageService.getCallByTimeAndSystem(startTime,
-                endTime, systemId);
-        Response<LevelReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new LevelReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/report/error")
-    public Response<LevelReportVO> getErrorReport(
-            @RequestParam long startTime,
-            @RequestParam long endTime
-    ) {
-        List<SystemLevel> data = messageService.getErrorByTime(startTime, endTime);
-        Response<LevelReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new LevelReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/report/error/system")
-    public Response<LevelReportVO> getErrorReportBySystem(
-            @RequestParam long startTime,
-            @RequestParam long endTime,
-            @RequestParam int systemId
-    ) {
-        List<SystemLevel> data = messageService.getErrorByTimeAndSystem(startTime,
-                endTime, systemId);
-        Response<LevelReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new LevelReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/report/event")
-    public Response<LevelReportVO> getEventReport(
-            @RequestParam long startTime,
-            @RequestParam long endTime
-    ) {
-        List<SystemLevel> data = messageService.getEventByTime(startTime, endTime);
-        Response<LevelReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new LevelReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/report/event/system")
-    public Response<LevelReportVO> getEventReportBySystem(
-            @RequestParam long startTime,
-            @RequestParam long endTime,
-            @RequestParam int systemId
-    ) {
-        List<SystemLevel> data = messageService.getEventByTimeAndSystem(startTime,
-                endTime, systemId);
-        Response<LevelReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new LevelReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/report/metric")
-    public Response<MetricReportVO> getMetricReport(
-            @RequestParam long startTime,
-            @RequestParam long endTime
-    ) {
-        List<MetricGraphVO> data = messageService.getMetricByTime(startTime, endTime);
-        Response<MetricReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new MetricReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/report/metric/system")
-    public Response<MetricReportVO> getMetricReportBySystem(
-            @RequestParam long startTime,
-            @RequestParam long endTime,
-            @RequestParam int systemId
-    ) {
-        List<MetricGraphVO> data = messageService.getMetricByTimeAndSystem(startTime,
-                endTime, systemId);
-        Response<MetricReportVO> response = new Response<>();
-        response.ok();
-        response.setData(new MetricReportVO(startTime, endTime, data));
-        return response;
-    }
-
-    @GetMapping("/config/get")
-    public Response<List<Config>> getConfigByType(
-            @RequestParam int type
-    ) {
-        List<Config> configs = configService.getConfigByType(type);
-        Response<List<Config>> response = new Response<>();
-        response.ok();
-        response.setData(configs);
-        return response;
-    }
-
-    @PostMapping("/config/add")
-    public Response<Config> addConfig(
-            @RequestBody AddConfigVO config
-    ) {
-        Config res = configService.addConfig(config);
-        Response<Config> response = new Response<>();
-        response.ok();
-        response.setData(res);
-        return response;
-    }
-
-    @PostMapping("/config/update")
-    public Response<Config> updateConfig(
-            @RequestBody Config config
-    ) {
-        Config config1 = configService.updateConfig(config);
-        Response<Config> response = new Response<>();
-        response.ok();
-        response.setData(config1);
-        return response;
-    }
-
-    @PostMapping("/config/delete")
-    public Response<Long> deleteConfig(
-            @RequestParam long id
-    ) {
-        configService.deleteConfig(id);
-        Response<Long> response = new Response<>();
-        response.ok();
-        response.setData(id);
-        return response;
-    }
-
-    @GetMapping("/config/receiver/get")
-    public Response<List<AlertReceiver>> getAlertReceiver() {
-        List<AlertReceiver> data = configService.getAlertReceiver();
-        Response<List<AlertReceiver>> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @PostMapping("/config/receiver/add")
-    public Response<AlertReceiver> addAlertReceiver(
-            @RequestBody AddAlertReceiverVO addAlertReceiverVO
-    ) {
-        AlertReceiver data = configService.addAlertReceiver(addAlertReceiverVO);
-        Response<AlertReceiver> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @PostMapping("/config/receiver/update")
-    public Response<AlertReceiver> updateAlertReceiver(
-            @RequestBody AlertReceiver alertReceiver
-    ) {
-        AlertReceiver data = configService.updateAlertReceiver(alertReceiver);
-        Response<AlertReceiver> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @PostMapping("/config/receiver/delete")
-    public Response<Long> deleteAlertReceiver(
-            @RequestParam long id
-    ) {
-        long data = configService.deleteAlertReceiver(id);
-        Response<Long> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @GetMapping("/config/alertMail")
-    public Response<List<AlertMail>> getAlertMail(
-            @RequestParam long startTime,
-            @RequestParam long endTime
-    ){
-        List<AlertMail> data = configService.getAlertMail(startTime, endTime);
-        Response<List<AlertMail>> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @GetMapping("/config/receiverGroup/get")
-    public Response<List<AlertReceiverGroup>> getAlertReceiverGroup() {
-        List<AlertReceiverGroup> data = configService.getAlertReceiverGroup();
-        Response<List<AlertReceiverGroup>> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @PostMapping("/config/receiverGroup/add")
-    public Response<AlertReceiverGroup> addAlertReceiverGroup(
-            @RequestBody AddAlertReceiverGroupVO addAlertReceiverGroupVO
-    ) {
-        AlertReceiverGroup data = configService.addAlertReceiverGroup(addAlertReceiverGroupVO);
-        Response<AlertReceiverGroup> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @PostMapping("/config/receiverGroup/update")
-    public Response<AlertReceiverGroup> updateAlertReceiverGroup(
-            @RequestBody AlertReceiverGroup alertReceiverGroup
-    ) {
-        AlertReceiverGroup data = configService.updateAlertReceiverGroup(alertReceiverGroup);
-        Response<AlertReceiverGroup> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @PostMapping("/config/receiverGroup/delete")
-    public Response<Long> deleteAlertReceiverGroup(
-            @RequestParam long id
-    ) {
-        long data = configService.deleteAlertReceiverGroup(id);
-        Response<Long> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-
-    @GetMapping("enum")
-    public Response<List<EnumVO>> getEnums() {
-        List<EnumVO> data = enumService.getEnums();
-        Response<List<EnumVO>> response = new Response<>();
-        response.ok();
-        response.setData(data);
-        return response;
-    }
-}

+ 34 - 0
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorEnumController.java

@@ -0,0 +1,34 @@
+package com.nju.edu.paasMonitorServer.controller;
+
+import com.nju.edu.paasMonitorServer.entity.vo.EnumVO;
+import com.nju.edu.paasMonitorServer.service.EnumService;
+import com.nju.edu.paasMonitorServer.web.response.Response;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping(value = "/api/enum", produces = "application/json")
+@Slf4j
+public class PaasMonitorEnumController {
+    private final EnumService enumService;
+
+    @Autowired
+    public PaasMonitorEnumController(
+            EnumService enumService
+    ){
+        this.enumService = enumService;
+    }
+    @GetMapping("/")
+    public Response<List<EnumVO>> getEnums() {
+        List<EnumVO> data = enumService.getEnums();
+        Response<List<EnumVO>> response = new Response<>();
+        response.ok();
+        response.setData(data);
+        return response;
+    }
+}

+ 75 - 0
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorLogController.java

@@ -0,0 +1,75 @@
+package com.nju.edu.paasMonitorServer.controller;
+
+import com.nju.edu.paasMonitorCommon.dto.CallDto;
+import com.nju.edu.paasMonitorCommon.dto.ErrorDto;
+import com.nju.edu.paasMonitorCommon.dto.EventDto;
+import com.nju.edu.paasMonitorCommon.dto.MetricDto;
+import com.nju.edu.paasMonitorServer.entity.vo.Call;
+import com.nju.edu.paasMonitorServer.entity.vo.Error;
+import com.nju.edu.paasMonitorServer.entity.vo.Event;
+import com.nju.edu.paasMonitorServer.entity.vo.Metric;
+import com.nju.edu.paasMonitorServer.service.MessageService;
+import com.nju.edu.paasMonitorServer.web.response.Response;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping(value = "/api/log", produces = "application/json")
+@Slf4j
+public class PaasMonitorLogController {
+    private final MessageService messageService;
+
+
+    @Autowired
+    public PaasMonitorLogController(
+            MessageService messageService
+    ) {
+        this.messageService = messageService;
+    }
+
+    @PostMapping("/event")
+    public Response<String> log(@RequestBody EventDto message) {
+        Event event = new Event(message.getSystem(), message.getCategory(),
+                message.getName(), message.getCreateTime(), message.getStatus());
+        messageService.collectMessage(event);
+        Response<String> response = new Response<>();
+        response.ok();
+        return response;
+    }
+
+    @PostMapping("/error")
+    public Response<String> log(@RequestBody ErrorDto message) {
+        Error error = new Error(message.getSystem(), message.getCategory(),
+                message.getName(), message.getCreateTime(), message.getMessage(),
+                message.getExceptionInfo(), message.getStackTrace());
+        messageService.collectMessage(error);
+        Response<String> response = new Response<>();
+        response.ok();
+        return response;
+    }
+
+    @PostMapping("/call")
+    public Response<String> log(@RequestBody CallDto message) {
+        Call call = new Call(message.getSystem(), message.getCategory(),
+                message.getName(), message.getCreateTime(), message.getDuration(),
+                message.getStatus());
+        messageService.collectMessage(call);
+        Response<String> response = new Response<>();
+        response.ok();
+        return response;
+    }
+
+    @PostMapping("/metric")
+    public Response<String> log(@RequestBody MetricDto message) {
+        Metric metric = new Metric(message.getSystem(), message.getCategory(),
+                message.getName(), message.getCreateTime(), message.getCount(), message.getType());
+        messageService.collectMessage(metric);
+        Response<String> response = new Response<>();
+        response.ok();
+        return response;
+    }
+}

+ 132 - 0
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/controller/PaasMonitorReportController.java

@@ -0,0 +1,132 @@
+package com.nju.edu.paasMonitorServer.controller;
+
+import com.nju.edu.paasMonitorServer.entity.vo.item.SystemLevel;
+import com.nju.edu.paasMonitorServer.entity.vo.item.metric.MetricGraphVO;
+import com.nju.edu.paasMonitorServer.entity.vo.report.LevelReportVO;
+import com.nju.edu.paasMonitorServer.entity.vo.report.MetricReportVO;
+import com.nju.edu.paasMonitorServer.service.MessageService;
+import com.nju.edu.paasMonitorServer.web.response.Response;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping(value = "/api/report", produces = "application/json")
+@Slf4j
+public class PaasMonitorReportController {
+    private final MessageService messageService;
+    @Autowired
+    public PaasMonitorReportController(
+            MessageService messageService
+    ){
+        this.messageService = messageService;
+    }
+    @GetMapping("/call")
+    public Response<LevelReportVO> getCallReport(
+            @RequestParam long startTime,
+            @RequestParam long endTime
+    ) {
+        List<SystemLevel> data = messageService.getCallByTime(startTime, endTime);
+        Response<LevelReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new LevelReportVO(startTime, endTime, data));
+        return response;
+    }
+
+    @GetMapping("/call/system")
+    public Response<LevelReportVO> getCallReportBySystem(
+            @RequestParam long startTime,
+            @RequestParam long endTime,
+            @RequestParam int systemId
+    ) {
+        List<SystemLevel> data = messageService.getCallByTimeAndSystem(startTime,
+                endTime, systemId);
+        Response<LevelReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new LevelReportVO(startTime, endTime, data));
+        return response;
+    }
+
+    @GetMapping("/error")
+    public Response<LevelReportVO> getErrorReport(
+            @RequestParam long startTime,
+            @RequestParam long endTime
+    ) {
+        List<SystemLevel> data = messageService.getErrorByTime(startTime, endTime);
+        Response<LevelReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new LevelReportVO(startTime, endTime, data));
+        return response;
+    }
+
+    @GetMapping("/error/system")
+    public Response<LevelReportVO> getErrorReportBySystem(
+            @RequestParam long startTime,
+            @RequestParam long endTime,
+            @RequestParam int systemId
+    ) {
+        List<SystemLevel> data = messageService.getErrorByTimeAndSystem(startTime,
+                endTime, systemId);
+        Response<LevelReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new LevelReportVO(startTime, endTime, data));
+        return response;
+    }
+
+    @GetMapping("/event")
+    public Response<LevelReportVO> getEventReport(
+            @RequestParam long startTime,
+            @RequestParam long endTime
+    ) {
+        List<SystemLevel> data = messageService.getEventByTime(startTime, endTime);
+        Response<LevelReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new LevelReportVO(startTime, endTime, data));
+        return response;
+    }
+
+    @GetMapping("/event/system")
+    public Response<LevelReportVO> getEventReportBySystem(
+            @RequestParam long startTime,
+            @RequestParam long endTime,
+            @RequestParam int systemId
+    ) {
+        List<SystemLevel> data = messageService.getEventByTimeAndSystem(startTime,
+                endTime, systemId);
+        Response<LevelReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new LevelReportVO(startTime, endTime, data));
+        return response;
+    }
+
+    @GetMapping("/metric")
+    public Response<MetricReportVO> getMetricReport(
+            @RequestParam long startTime,
+            @RequestParam long endTime
+    ) {
+        List<MetricGraphVO> data = messageService.getMetricByTime(startTime, endTime);
+        Response<MetricReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new MetricReportVO(startTime, endTime, data));
+        return response;
+    }
+
+    @GetMapping("/metric/system")
+    public Response<MetricReportVO> getMetricReportBySystem(
+            @RequestParam long startTime,
+            @RequestParam long endTime,
+            @RequestParam int systemId
+    ) {
+        List<MetricGraphVO> data = messageService.getMetricByTimeAndSystem(startTime,
+                endTime, systemId);
+        Response<MetricReportVO> response = new Response<>();
+        response.ok();
+        response.setData(new MetricReportVO(startTime, endTime, data));
+        return response;
+    }
+}

+ 2 - 2
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Call.java

@@ -4,8 +4,8 @@ import lombok.Getter;
 
 @Getter
 public class Call extends Message{
-    private long duration;
-    private int status;
+    private long duration;  //间隔时长
+    private int status;  //Call监控状态
 
     public Call(int system, String category, String name, long createdTime, long duration, int status) {
         this.system = system;

+ 3 - 3
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Error.java

@@ -4,9 +4,9 @@ import lombok.Getter;
 
 @Getter
 public class Error extends Message{
-    private String message;
-    private String exceptionInfo;
-    private String stackTrace;
+    private String message;  //错误备注信息
+    private String exceptionInfo;  //异常信息
+    private String stackTrace;  //堆栈信息
 
     public Error(int system, String category, String name, long createdTime, String message, String exceptionInfo, String stackTrace) {
         this.system = system;

+ 1 - 1
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Event.java

@@ -4,7 +4,7 @@ import lombok.Getter;
 
 @Getter
 public class Event extends Message{
-    private int status;
+    private int status;  //Event监控状态
 
     public Event(int system, String category, String name, long createdTime, int status) {
         this.system = system;

+ 4 - 4
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Message.java

@@ -4,10 +4,10 @@ import lombok.Getter;
 
 @Getter
 public class Message {
-    protected int system;
-    protected String category;
-    protected String name;
-    protected long createTime;
+    protected int system;  //所属系统
+    protected String category;  //所属分类
+    protected String name;  //监控名称
+    protected long createTime;  //创建时间
 
     public Message(){}
 }

+ 2 - 2
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/entity/vo/Metric.java

@@ -4,8 +4,8 @@ import lombok.Getter;
 
 @Getter
 public class Metric extends Message{
-    private int count;
-    private int type;
+    private int count;  //监控项总数
+    private int type;  //监控指标总值
 
     public Metric(int system, String category,String name, long createdTime, int count, int type){
         this.system = system;

+ 0 - 3
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/process/MessageDistributor.java

@@ -8,9 +8,6 @@ import java.util.concurrent.LinkedBlockingQueue;
 
 @Slf4j
 public class MessageDistributor{
-    /**
-     * CONSUMER_SIZE 必须是2的次方
-     */
     private final BlockingQueue<Message> mq = new LinkedBlockingQueue<>(4000);
     private int errorCount = 0;
     private static volatile MessageDistributor instance;

+ 1 - 1
PaasMonitor-server/src/main/java/com/nju/edu/paasMonitorServer/process/analyzer/Analyzer.java

@@ -3,5 +3,5 @@ package com.nju.edu.paasMonitorServer.process.analyzer;
 import com.nju.edu.paasMonitorServer.entity.vo.Message;
 
 public interface Analyzer {
-    public void analyze(Message message);
+    void analyze(Message message);
 }

+ 17 - 17
sql/paasMonitor.sql

@@ -7,8 +7,8 @@ CREATE TABLE `event_record`
 (
     `id`          BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     `system_id`   TINYINT(4) UNSIGNED NOT NULL,
-    `category`    VARCHAR(50)         NOT NULL,
-    `name`        VARCHAR(50)         NOT NULL,
+    `category`    VARCHAR(255)         NOT NULL,
+    `name`        VARCHAR(255)         NOT NULL,
     `create_time` BIGINT(13) UNSIGNED NOT NULL,
     `status`      TINYINT(4) UNSIGNED NOT NULL DEFAULT 1,
     INDEX `idx_event_ct` (`create_time`)
@@ -20,11 +20,11 @@ CREATE TABLE `error_record`
 (
     `id`             BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     `system_id`      TINYINT(4) UNSIGNED NOT NULL,
-    `category`       VARCHAR(50)         NOT NULL,
-    `name`           VARCHAR(50)         NOT NULL,
+    `category`       VARCHAR(255)         NOT NULL,
+    `name`           VARCHAR(255)         NOT NULL,
     `create_time`    BIGINT(13) UNSIGNED NOT NULL,
-    `message`        VARCHAR(200)        NOT NULL,
-    `exception_info` VARCHAR(100)        NOT NULL,
+    `message`        VARCHAR(255)        NOT NULL,
+    `exception_info` VARCHAR(255)        NOT NULL,
     `stack_trace`    TEXT                NOT NULL,
     INDEX `idx_error_ct` (`create_time`)
 ) ENGINE = innoDB
@@ -35,8 +35,8 @@ CREATE TABLE `metric_record`
 (
     `id`         BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     `system_id`  TINYINT(4) UNSIGNED NOT NULL,
-    `category`   VARCHAR(50)         NOT NULL,
-    `name`       VARCHAR(50)         NOT NULL,
+    `category`   VARCHAR(255)         NOT NULL,
+    `name`       VARCHAR(255)         NOT NULL,
     `start_time` BIGINT(13) UNSIGNED NOT NULL,
     `total`      INT(10) UNSIGNED    NOT NULL DEFAULT 0,
     `value`      INT(10)             NOT NULL,
@@ -51,8 +51,8 @@ CREATE TABLE `call_record`
 (
     `id`          BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     `system_id`   TINYINT(4) UNSIGNED NOT NULL,
-    `category`    VARCHAR(50)         NOT NULL,
-    `name`        VARCHAR(50)         NOT NULL,
+    `category`    VARCHAR(255)         NOT NULL,
+    `name`        VARCHAR(255)         NOT NULL,
     `create_time` BIGINT(13) UNSIGNED NOT NULL,
     `duration`    BIGINT(13) UNSIGNED NOT NULL,
     `status`      TINYINT(4) UNSIGNED NOT NULL,
@@ -66,14 +66,14 @@ CREATE TABLE `alert_config`
     `id`             BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     `type`           TINYINT(4) UNSIGNED NOT NULL,
     `system_id`      TINYINT(4) UNSIGNED NOT NULL,
-    `category`       VARCHAR(50)         NOT NULL,
-    `name`           VARCHAR(50)         NOT NULL,
+    `category`       VARCHAR(255)         NOT NULL,
+    `name`           VARCHAR(255)         NOT NULL,
     `alert_item`     TINYINT(4)          NOT NULL,
     `alert_level`    TINYINT(4) UNSIGNED NOT NULL,
     `duration`       INT(4) UNSIGNED     NOT NULL,
     `start_time`     VARCHAR(5)          NOT NULL,
     `end_time`       VARCHAR(5)          NOT NULL,
-    `receiver_email` VARCHAR(200)        NOT NULL,
+    `receiver_email` VARCHAR(255)        NOT NULL,
     INDEX `idx_alert_call_sid_c_n` (`type`, `system_id`, `category`, `name`)
 ) ENGINE = innoDB
   DEFAULT CHARSET = utf8mb4;
@@ -96,10 +96,10 @@ CREATE TABLE `alert_receiver`
     `id`          BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
     `type`        TINYINT(4) UNSIGNED NOT NULL,
     `system_id`   TINYINT(4) UNSIGNED NOT NULL,
-    `category`    VARCHAR(50)         NOT NULL,
-    `name`        VARCHAR(50)         NOT NULL,
+    `category`    VARCHAR(255)         NOT NULL,
+    `name`        VARCHAR(255)         NOT NULL,
     `alert_level` TINYINT(4) UNSIGNED NOT NULL,
-    `email`       VARCHAR(100)        NOT NULL
+    `email`       VARCHAR(255)        NOT NULL
 ) ENGINE = innoDB
   DEFAULT CHARSET = utf8mb4;
 
@@ -107,7 +107,7 @@ DROP TABLE IF EXISTS `alert_receiver_group`;
 CREATE TABLE `alert_receiver_group`
 (
     `id`         BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-    `group_name` VARCHAR(50) NOT NULL,
+    `group_name` VARCHAR(255) NOT NULL,
     `emails`     TEXT        NOT NULL,
     UNIQUE INDEX `uniq_idx_gn` (`group_name`)
 ) ENGINE = innoDB