业务节点监控接口

monitor
liuqingkun 1 year ago
parent 172376c1fd
commit 9c7b119bf1
  1. 20
      src/main/java/org/springblade/modules/monitor/controller/BusinessMonitorController.java
  2. 5
      src/main/java/org/springblade/modules/monitor/entity/ConfigMonitor.java
  3. 5
      src/main/java/org/springblade/modules/monitor/service/IConfigMonitorService.java
  4. 79
      src/main/java/org/springblade/modules/monitor/service/impl/ConfigMonitorServiceImpl.java

@ -1,13 +1,20 @@
package org.springblade.modules.monitor.controller; package org.springblade.modules.monitor.controller;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.map.HashedMap;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.modules.monitor.service.IBusinessMonitorService; import org.springblade.modules.monitor.service.IBusinessMonitorService;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 业务监控控制器 * 业务监控控制器
* *
@ -19,6 +26,19 @@ import org.springframework.web.bind.annotation.RestController;
public class BusinessMonitorController { public class BusinessMonitorController {
private final IBusinessMonitorService businessMonitorService; private final IBusinessMonitorService businessMonitorService;
private final IConfigMonitorService monitorService;
/**
* 根据服务类型code查询该服务下的所有通讯链路及报警节点
*
* @param serviceCode
* @return
*/
@GetMapping("/getWarnPoint")
public R getWarnPoint(@RequestParam("serviceCode") String serviceCode) {
return R.data(monitorService.getWarnLinePoint(serviceCode));
}
/** /**
* 根据设备类型和报警节点查询排查方法 * 根据设备类型和报警节点查询排查方法
* *

@ -100,6 +100,11 @@ public class ConfigMonitor extends BaseEntity {
@ApiModelProperty("创建部门") @ApiModelProperty("创建部门")
private Long createDept; private Long createDept;
/**
* 图标
*/
@ApiModelProperty(value = "图标")
private String icon;
/** /**
* 服务颜色 * 服务颜色
*/ */

@ -16,11 +16,14 @@
*/ */
package org.springblade.modules.monitor.service; package org.springblade.modules.monitor.service;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.google.gson.JsonArray;
import org.springblade.modules.monitor.entity.ConfigMonitor; import org.springblade.modules.monitor.entity.ConfigMonitor;
import org.springblade.modules.monitor.vo.ConfigMonitorVO; import org.springblade.modules.monitor.vo.ConfigMonitorVO;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 服务器监控基础配置表 服务类 * 服务器监控基础配置表 服务类
@ -40,4 +43,6 @@ public interface IConfigMonitorService extends IService<ConfigMonitor> {
* @return * @return
*/ */
List<ConfigMonitorVO> tree(); List<ConfigMonitorVO> tree();
Object getWarnLinePoint(String parentId);
} }

@ -16,11 +16,15 @@
*/ */
package org.springblade.modules.monitor.service.impl; package org.springblade.modules.monitor.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.JsonArray;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
@ -220,7 +224,79 @@ public class ConfigMonitorServiceImpl extends ServiceImpl<ConfigMonitorMapper, C
return ForestNodeMerger.merge(baseMapper.tree()); return ForestNodeMerger.merge(baseMapper.tree());
} }
public List<Long> getParentIdList(List<Long> parentIdList,Long parentId){ @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;
}
JSONObject monitorJson = new JSONObject();
monitorJson.put("parent", null);
monitorJson.put("id", monitor.getId());
monitorJson.put("name", monitor.getMonitorType());
monitorJson.put("type", monitor.getType());
monitorJson.put("class_code", monitor.getClassCode());
monitorJson.put("status", monitor.getStatus());
monitorJson.put("icon", monitor.getIcon());
// 递归查询该微服务下的所有设备
JSONArray allEquipArray = getChildList(monitorJson);
// 遍历设备组织返回数据
JSONObject resultObj = new JSONObject();
for (Object o : allEquipArray) {
JSONObject item = JSONObject.parseObject(JSON.toJSONString(o));
resultObj.put("classCode", item.getString("class_code"));
resultObj.put("lineData", getLineData(item));
resultList.add(resultObj);
}
return resultList.stream().distinct().collect(Collectors.toList());
}
private JSONArray getChildList(JSONObject parent) {
JSONArray resultArray = new JSONArray();
// 查询子等级的设备
List<ConfigMonitor> monitor1List = baseMapper.selectList(Wrappers.<ConfigMonitor>lambdaQuery().eq(ConfigMonitor::getParentId, parent.getLong("id")));
if (monitor1List == null || monitor1List.size() == 0) {
resultArray.add(parent);
return resultArray;
} else {
for (ConfigMonitor monitor : monitor1List) {
JSONObject monitorJson = new JSONObject();
monitorJson.put("parent", parent);
monitorJson.put("id", monitor.getId());
monitorJson.put("name", monitor.getMonitorType());
monitorJson.put("type", monitor.getType());
monitorJson.put("class_code", monitor.getClassCode());
monitorJson.put("status", monitor.getStatus());
monitorJson.put("icon", monitor.getIcon());
resultArray.addAll(getChildList(monitorJson));
}
}
return resultArray;
}
private JSONArray getLineData(JSONObject item) {
JSONArray resultArray = new JSONArray();
JSONObject parent = item.getJSONObject("parent");
if (parent == null) {
item.put("parent", "0");
resultArray.add(item);
} else {
item.put("parent", parent.getString("id"));
resultArray.add(item);
for (Object lineDatum : getLineData(parent)) {
resultArray.add(lineDatum);
}
}
return resultArray;
}
private List<Long> getParentIdList(List<Long> parentIdList, Long parentId) {
parentIdList.add(parentId); parentIdList.add(parentId);
if (parentId != 0) { if (parentId != 0) {
LambdaQueryWrapper<ConfigMonitor> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ConfigMonitor> queryWrapper = new LambdaQueryWrapper<>();
@ -238,5 +314,4 @@ public class ConfigMonitorServiceImpl extends ServiceImpl<ConfigMonitorMapper, C
} }
} }

Loading…
Cancel
Save