monitor
liuqingkun 1 year ago
commit 0de42e65af
  1. 3
      src/main/java/org/springblade/common/constant/MonitorConstant.java
  2. 8
      src/main/java/org/springblade/modules/monitor/controller/MonitorController.java
  3. 55
      src/main/java/org/springblade/modules/monitor/controller/SystemMonitorController.java
  4. 12
      src/main/java/org/springblade/modules/monitor/entity/ConfigMonitor.java
  5. 2
      src/main/java/org/springblade/modules/monitor/mapper/ConfigMonitorMapper.xml
  6. 6
      src/main/java/org/springblade/modules/monitor/service/IConfigMonitorService.java
  7. 40
      src/main/java/org/springblade/modules/monitor/service/impl/ConfigMonitorServiceImpl.java

@ -59,4 +59,7 @@ public interface MonitorConstant {
String WEB = "web";
String REDIS = "redis";
String MYSQL = "mysql";
}

@ -16,14 +16,6 @@ import java.util.List;
public class MonitorController {
private final IConfigMonitorService configMonitorService;
/**
* 获取所有监控设备
*/
@GetMapping("/tree")
public R<List<ConfigMonitorVO>> tree(){
List<ConfigMonitorVO> list = configMonitorService.tree();
return R.data(list);
}
/**
* 判断设备是否正常

@ -1,11 +1,17 @@
package org.springblade.modules.monitor.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springblade.modules.monitor.entity.ConfigMonitor;
import org.springblade.modules.monitor.service.IConfigMonitorService;
import org.springblade.modules.monitor.vo.ConfigMonitorVO;
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;
/**
* 业务数据监控控制器
*
@ -16,8 +22,57 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/monitor-system")
public class SystemMonitorController {
private final IConfigMonitorService configMonitorService;
@GetMapping("/detail")
public R test() {
return null;
}
/**
* 获取所有监控设备
*/
@GetMapping("/tree")
public R<List<ConfigMonitorVO>> tree(){
List<ConfigMonitorVO> list = configMonitorService.tree();
return R.data(list);
}
/**
* 获取所有监控设备
*/
@GetMapping("/getMonitorList")
public R<List<ConfigMonitor>> getMonitorList(){
List<ConfigMonitor> list = configMonitorService.list(new LambdaQueryWrapper<>());
return R.data(list);
}
/**
*获取服务列表
*/
@GetMapping("/getServiceList")
public R<List<ConfigMonitor>> getServiceList(){
List<ConfigMonitor> list = configMonitorService.getServiceList();
return R.data(list);
}
/**
*获取redismysql列表
*/
@GetMapping("/getMiddleList")
public R<List<ConfigMonitor>> getMiddleList(){
List<ConfigMonitor> list = configMonitorService.getMiddleList();
return R.data(list);
}
/**
*获取服务器运行参数列表
*/
@GetMapping("/getServerParamsList")
public R<List<ConfigMonitor>> getServerParamsList(){
List<ConfigMonitor> list = configMonitorService.getServerParamsList();
return R.data(list);
}
}

@ -63,6 +63,12 @@ public class ConfigMonitor extends BaseEntity {
@ApiModelProperty(value = "ip")
private String ip;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 监控类型
*/
@ -110,4 +116,10 @@ public class ConfigMonitor extends BaseEntity {
*/
@ApiModelProperty(value = "服务颜色")
private String color;
/**
* 图标
*/
@ApiModelProperty(value = "图标")
private String icon;
}

@ -29,6 +29,7 @@
<result column="value" property="value"/>
<result column="key" property="key"/>
<result column="has_children" property="hasChildren"/>
<result column="ip" property="ip"/>
</resultMap>
<select id="tree" resultMap="treeNodeResultMap" >
@ -40,6 +41,7 @@
a.id AS "key",
a.monitor_type,
a.status,
a.ip,
(
SELECT
CASE WHEN count(1) > 0 THEN 1 ELSE 0 END

@ -45,4 +45,10 @@ public interface IConfigMonitorService extends IService<ConfigMonitor> {
List<ConfigMonitorVO> tree();
Object getWarnLinePoint(String parentId);
List<ConfigMonitor> getServiceList();
List<ConfigMonitor> getMiddleList();
List<ConfigMonitor> getServerParamsList();
}

@ -224,12 +224,50 @@ public class ConfigMonitorServiceImpl extends ServiceImpl<ConfigMonitorMapper, C
return ForestNodeMerger.merge(baseMapper.tree());
}
public List<ConfigMonitor> getServiceList() {
LambdaQueryWrapper<ConfigMonitor> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ConfigMonitor::getType,MonitorConstant.SERVICE);
List<ConfigMonitor> list = baseMapper.selectList(wrapper);
return list;
}
@Override
public List<ConfigMonitor> getMiddleList() {
LambdaQueryWrapper<ConfigMonitor> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ConfigMonitor::getType,MonitorConstant.REDIS).or().eq(ConfigMonitor::getType,MonitorConstant.MYSQL);
List<ConfigMonitor> list = baseMapper.selectList(wrapper);
return list;
}
@Override
public List<ConfigMonitor> getServerParamsList() {
LambdaQueryWrapper<ConfigMonitor> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ConfigMonitor::getType,MonitorConstant.WEB);
List<ConfigMonitor> list = baseMapper.selectList(wrapper);
return list;
}
public List<Long> getParentIdList(List<Long> parentIdList,Long parentId){
parentIdList.add(parentId);
if(parentId != 0){
LambdaQueryWrapper<ConfigMonitor> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ConfigMonitor::getId,parentId);
queryWrapper.eq(BaseEntity::getIsDeleted,0);
ConfigMonitor configMonitor = baseMapper.selectOne(queryWrapper);
parentId = configMonitor.getParentId();
//服务器不需要排查,所以只需要到服务层面就可以
if(configMonitor.getType().equals(MonitorConstant.SERVICE)){
return parentIdList;
}
getParentIdList(parentIdList,parentId);
}
return parentIdList;
}
@Override
public Object getWarnLinePoint(String parentId) {
// 先查询该微服务
List resultList = new ArrayList();
ConfigMonitor monitor = baseMapper.selectOne(Wrappers.<ConfigMonitor>lambdaQuery().eq(ConfigMonitor::getId, parentId));
if (monitor == null) {
return resultList;
}

Loading…
Cancel
Save