agent接收数据类型调整匹配,完善资源模板管理、资源监控策略逻辑。
This commit is contained in:
@@ -80,5 +80,13 @@ public interface RemoteRevenueConfigService
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/registration/list")
|
@PostMapping("/registration/list")
|
||||||
public R<TableDataInfo> getRegistrationList(@RequestBody RmResourceRegistrationRemote rmResourceRegistrationRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
public R<TableDataInfo> getRegistrationList(@RequestBody RmResourceRegistrationRemote rmResourceRegistrationRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
/**
|
||||||
|
* 根据硬件SN查询资源信息
|
||||||
|
* @param rmResourceRegistrationRemote
|
||||||
|
* @param source
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/registration/getListByHardwareSn")
|
||||||
|
public R<RmResourceRegistrationRemote> getListByHardwareSn(@RequestBody RmResourceRegistrationRemote rmResourceRegistrationRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,11 @@ public class RemoteRevenueConfigFallbackFactory implements FallbackFactory<Remot
|
|||||||
public R<TableDataInfo> getRegistrationList(RmResourceRegistrationRemote rmResourceRegistrationRemote, String source) {
|
public R<TableDataInfo> getRegistrationList(RmResourceRegistrationRemote rmResourceRegistrationRemote, String source) {
|
||||||
return R.fail("获取资源注册列表信息失败" + throwable.getMessage());
|
return R.fail("获取资源注册列表信息失败" + throwable.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<RmResourceRegistrationRemote> getListByHardwareSn(RmResourceRegistrationRemote rmResourceRegistrationRemote, String source) {
|
||||||
|
return R.fail("根据SN获取资源注册列表信息失败" + throwable.getMessage());
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.ruoyi.system.controller;
|
package com.ruoyi.system.controller;
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ruoyi.common.core.web.controller.BaseController;
|
import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.web.page.PageDomain;
|
|
||||||
import com.ruoyi.common.core.web.page.TableDataInfo;
|
import com.ruoyi.common.core.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.RmResourceGroup;
|
import com.ruoyi.system.domain.RmResourceGroup;
|
||||||
import com.ruoyi.system.domain.RmResourceRegistration;
|
import com.ruoyi.system.domain.RmResourceRegistration;
|
||||||
@@ -12,8 +12,6 @@ import com.ruoyi.system.service.IRmResourceRegistrationService;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资源监控API
|
* 资源监控API
|
||||||
*
|
*
|
||||||
@@ -35,7 +33,7 @@ public class ResourceMonitorController extends BaseController
|
|||||||
* 获取资源分组列表
|
* 获取资源分组列表
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("resourceGroupList")
|
@GetMapping("/resourceGroupList")
|
||||||
public AjaxResult resourceGroupList(){
|
public AjaxResult resourceGroupList(){
|
||||||
RmResourceGroup rmResourceGroup = new RmResourceGroup();
|
RmResourceGroup rmResourceGroup = new RmResourceGroup();
|
||||||
return success(rmResourceGroupService.selectRmResourceGroupList(rmResourceGroup));
|
return success(rmResourceGroupService.selectRmResourceGroupList(rmResourceGroup));
|
||||||
@@ -45,7 +43,7 @@ public class ResourceMonitorController extends BaseController
|
|||||||
* 服务器整体发送带宽利用率
|
* 服务器整体发送带宽利用率
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("trafficRateByServer")
|
@GetMapping("/trafficRateByServer")
|
||||||
public AjaxResult trafficRateByServer(){
|
public AjaxResult trafficRateByServer(){
|
||||||
return success(epsInitialTrafficDataService.trafficRateByServer());
|
return success(epsInitialTrafficDataService.trafficRateByServer());
|
||||||
}
|
}
|
||||||
@@ -54,14 +52,10 @@ public class ResourceMonitorController extends BaseController
|
|||||||
* 获取资源列表
|
* 获取资源列表
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("getRegisterListByGroupId")
|
@PostMapping("/getRegisterListByGroupId")
|
||||||
public TableDataInfo getRegisterListByGroupId(@RequestBody RmResourceGroup rmResourceGroup){
|
public TableDataInfo getRegisterListByGroupId(@RequestBody RmResourceGroup rmResourceGroup){
|
||||||
// 拿到注册信息
|
// 拿到注册信息
|
||||||
PageDomain pageDomain = new PageDomain();
|
PageInfo<RmResourceRegistration> pageInfo = rmResourceGroupService.getRegisterList(rmResourceGroup);
|
||||||
pageDomain.setPageNum(rmResourceGroup.getPageNum());
|
return getDataTable(pageInfo.getList(), pageInfo.getTotal());
|
||||||
pageDomain.setPageSize(rmResourceGroup.getPageSize());
|
|
||||||
startPage(pageDomain);
|
|
||||||
List<RmResourceRegistration> list = rmResourceGroupService.getRegisterList(rmResourceGroup);
|
|
||||||
return getDataTable(list);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -155,6 +155,15 @@ public class RmResourceRegistrationController extends BaseController
|
|||||||
List<RmResourceRegistration> list = rmResourceRegistrationService.getRegistrationByIds(ids);
|
List<RmResourceRegistration> list = rmResourceRegistrationService.getRegistrationByIds(ids);
|
||||||
return R.ok(list);
|
return R.ok(list);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 查询资源注册列表
|
||||||
|
*/
|
||||||
|
@InnerAuth
|
||||||
|
@PostMapping("/getListByHardwareSn")
|
||||||
|
public R<RmResourceRegistration> getListByHardwareSn(@RequestBody RmResourceRegistration rmResourceRegistration)
|
||||||
|
{
|
||||||
|
List<RmResourceRegistration> list = rmResourceRegistrationService.selectRmResourceRegistrationList(rmResourceRegistration);
|
||||||
|
return R.ok(list.get(0));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,4 +68,8 @@ public interface RmResourceGroupMapper
|
|||||||
public RmResourceGroup selectMonitorMsgAndGroupMsg(Long id);
|
public RmResourceGroup selectMonitorMsgAndGroupMsg(Long id);
|
||||||
|
|
||||||
int exitsResourceById(RmResourceGroup rmResourceGroup);
|
int exitsResourceById(RmResourceGroup rmResourceGroup);
|
||||||
|
|
||||||
|
int updateRmPolicyStatus(Long resourceGroupId);
|
||||||
|
|
||||||
|
int updateScriptPolicyStatus(Long resourceGroupId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.system.service;
|
package com.ruoyi.system.service;
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ruoyi.system.domain.RmResourceGroup;
|
import com.ruoyi.system.domain.RmResourceGroup;
|
||||||
import com.ruoyi.system.domain.RmResourceRegistration;
|
import com.ruoyi.system.domain.RmResourceRegistration;
|
||||||
|
|
||||||
@@ -61,7 +62,7 @@ public interface IRmResourceGroupService
|
|||||||
*/
|
*/
|
||||||
public int deleteRmResourceGroupById(Long id);
|
public int deleteRmResourceGroupById(Long id);
|
||||||
|
|
||||||
List<RmResourceRegistration> getRegisterList(RmResourceGroup rmResourceGroup);
|
PageInfo<RmResourceRegistration> getRegisterList(RmResourceGroup rmResourceGroup);
|
||||||
|
|
||||||
String exitsResourceById(RmResourceGroup rmResourceGroup);
|
String exitsResourceById(RmResourceGroup rmResourceGroup);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.system.service.impl;
|
package com.ruoyi.system.service.impl;
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ruoyi.common.core.utils.DateUtils;
|
import com.ruoyi.common.core.utils.DateUtils;
|
||||||
|
import com.ruoyi.common.core.web.page.PageDomain;
|
||||||
import com.ruoyi.system.domain.RmResourceGroup;
|
import com.ruoyi.system.domain.RmResourceGroup;
|
||||||
import com.ruoyi.system.domain.RmResourceRegistration;
|
import com.ruoyi.system.domain.RmResourceRegistration;
|
||||||
import com.ruoyi.system.mapper.RmResourceGroupMapper;
|
import com.ruoyi.system.mapper.RmResourceGroupMapper;
|
||||||
@@ -11,6 +13,8 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.ruoyi.common.core.utils.PageUtils.startPage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资源分组Service业务层处理
|
* 资源分组Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -72,9 +76,22 @@ public class RmResourceGroupServiceImpl implements IRmResourceGroupService
|
|||||||
public int updateRmResourceGroup(RmResourceGroup rmResourceGroup)
|
public int updateRmResourceGroup(RmResourceGroup rmResourceGroup)
|
||||||
{
|
{
|
||||||
rmResourceGroup.setUpdateTime(DateUtils.getNowDate());
|
rmResourceGroup.setUpdateTime(DateUtils.getNowDate());
|
||||||
return rmResourceGroupMapper.updateRmResourceGroup(rmResourceGroup);
|
rmResourceGroupMapper.updateRmResourceGroup(rmResourceGroup);
|
||||||
|
// 资源组修改,相关策略状态改为待下发
|
||||||
|
updatePolicyStatus(rmResourceGroup.getId());
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相关策略状态改为待下发
|
||||||
|
* @param resourceGroupId
|
||||||
|
*/
|
||||||
|
public void updatePolicyStatus(Long resourceGroupId){
|
||||||
|
// 资源监控策略状态修改
|
||||||
|
rmResourceGroupMapper.updateRmPolicyStatus(resourceGroupId);
|
||||||
|
// 脚本策略状态修改
|
||||||
|
rmResourceGroupMapper.updateScriptPolicyStatus(resourceGroupId);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 批量删除资源分组
|
* 批量删除资源分组
|
||||||
*
|
*
|
||||||
@@ -99,29 +116,54 @@ public class RmResourceGroupServiceImpl implements IRmResourceGroupService
|
|||||||
return rmResourceGroupMapper.deleteRmResourceGroupById(id);
|
return rmResourceGroupMapper.deleteRmResourceGroupById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据资源分组获取资源列表
|
||||||
|
* @param rmResourceGroup
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<RmResourceRegistration> getRegisterList(RmResourceGroup rmResourceGroup) {
|
public PageInfo<RmResourceRegistration> getRegisterList(RmResourceGroup rmResourceGroup) {
|
||||||
|
// 配置分页参数
|
||||||
|
PageDomain pageDomain = new PageDomain();
|
||||||
|
pageDomain.setPageNum(rmResourceGroup.getPageNum());
|
||||||
|
pageDomain.setPageSize(rmResourceGroup.getPageSize());
|
||||||
if(rmResourceGroup.getId() == null){
|
if(rmResourceGroup.getId() == null){
|
||||||
RmResourceRegistration queryParam = new RmResourceRegistration();
|
RmResourceRegistration queryParam = new RmResourceRegistration();
|
||||||
|
// 开启分页
|
||||||
|
startPage(pageDomain);
|
||||||
List<RmResourceRegistration> rmResourceRegistrationList = rmResourceRegistrationMapper.selectRmResourceRegistrationList(queryParam);
|
List<RmResourceRegistration> rmResourceRegistrationList = rmResourceRegistrationMapper.selectRmResourceRegistrationList(queryParam);
|
||||||
|
// 监控项赋值-暂时不需要
|
||||||
for (RmResourceRegistration rmResourceRegistration : rmResourceRegistrationList) {
|
for (RmResourceRegistration rmResourceRegistration : rmResourceRegistrationList) {
|
||||||
RmResourceGroup item = rmResourceGroupMapper.selectMonitorMsgAndGroupMsg(rmResourceRegistration.getId());
|
RmResourceGroup item = rmResourceGroupMapper.selectMonitorMsgAndGroupMsg(rmResourceRegistration.getId());
|
||||||
rmResourceRegistration.setMonitorItems(item.getMonitorItems());
|
if(item != null){
|
||||||
rmResourceRegistration.setDiscoveryRules(item.getDiscoveryRules());
|
rmResourceRegistration.setMonitorItems(item.getMonitorItems());
|
||||||
|
rmResourceRegistration.setDiscoveryRules(item.getDiscoveryRules());
|
||||||
|
}else{
|
||||||
|
rmResourceRegistration.setMonitorItems("0");
|
||||||
|
rmResourceRegistration.setDiscoveryRules("0");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return rmResourceRegistrationList;
|
return new PageInfo<>(rmResourceRegistrationList);
|
||||||
}else{
|
}else{
|
||||||
RmResourceGroup group = rmResourceGroupMapper.selectRmResourceGroupById(rmResourceGroup.getId());
|
RmResourceGroup group = rmResourceGroupMapper.selectRmResourceGroupById(rmResourceGroup.getId());
|
||||||
String ids = group.getIncludedDevicesId();
|
String ids = group.getIncludedDevicesId();
|
||||||
String[] resourceIds = ids.split(",");
|
String[] resourceIds = ids.split(",");
|
||||||
|
// 开启分页
|
||||||
|
startPage(pageDomain);
|
||||||
// 拿到资源信息
|
// 拿到资源信息
|
||||||
List<RmResourceRegistration> rmResourceRegistrationList = rmResourceRegistrationMapper.getRegistrationByIds(resourceIds);
|
List<RmResourceRegistration> rmResourceRegistrationList = rmResourceRegistrationMapper.getRegistrationByIds(resourceIds);
|
||||||
|
// 监控项赋值-暂时不需要
|
||||||
for (RmResourceRegistration rmResourceRegistration : rmResourceRegistrationList) {
|
for (RmResourceRegistration rmResourceRegistration : rmResourceRegistrationList) {
|
||||||
RmResourceGroup item = rmResourceGroupMapper.selectMonitorMsgAndGroupMsg(rmResourceRegistration.getId());
|
RmResourceGroup item = rmResourceGroupMapper.selectMonitorMsgAndGroupMsg(rmResourceRegistration.getId());
|
||||||
rmResourceRegistration.setMonitorItems(item.getMonitorItems());
|
if(item != null){
|
||||||
rmResourceRegistration.setDiscoveryRules(item.getDiscoveryRules());
|
rmResourceRegistration.setMonitorItems(item.getMonitorItems());
|
||||||
|
rmResourceRegistration.setDiscoveryRules(item.getDiscoveryRules());
|
||||||
|
}else{
|
||||||
|
rmResourceRegistration.setMonitorItems("0");
|
||||||
|
rmResourceRegistration.setDiscoveryRules("0");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return rmResourceRegistrationList;
|
return new PageInfo<>(rmResourceRegistrationList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -100,10 +100,20 @@
|
|||||||
<select id="selectMonitorMsgAndGroupMsg" parameterType="Long" resultType="RmResourceGroup">
|
<select id="selectMonitorMsgAndGroupMsg" parameterType="Long" resultType="RmResourceGroup">
|
||||||
select b.monitor_items monitorItems,b.discovery_rules discoveryRules from rm_resource_group a left join rm_monitor_template b on a.id=b.resource_group_id
|
select b.monitor_items monitorItems,b.discovery_rules discoveryRules from rm_resource_group a left join rm_monitor_template b on a.id=b.resource_group_id
|
||||||
where FIND_IN_SET(#{id}, a.included_devices_id) > 0
|
where FIND_IN_SET(#{id}, a.included_devices_id) > 0
|
||||||
|
limit 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="exitsResourceById" parameterType="RmResourceGroup" resultType="java.lang.Integer">
|
<select id="exitsResourceById" parameterType="RmResourceGroup" resultType="java.lang.Integer">
|
||||||
select count(1) from rm_resource_group
|
select count(1) from rm_resource_group
|
||||||
where FIND_IN_SET(#{resourceIds}, included_devices_id) > 0
|
where FIND_IN_SET(#{resourceIds}, included_devices_id) > 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<update id="updateRmPolicyStatus" parameterType="Long">
|
||||||
|
update rm_monitor_policy set status = '0'
|
||||||
|
where resource_group_id = #{resourceGroupId}
|
||||||
|
</update>
|
||||||
|
<update id="updateScriptPolicyStatus" parameterType="Long">
|
||||||
|
update rm_deployment_policy set policy_status = '0'
|
||||||
|
where resource_group_id = #{resourceGroupId}
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -3,6 +3,7 @@ package com.ruoyi.rocketmq.controller;
|
|||||||
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.common.core.web.controller.BaseController;
|
import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.web.page.PageDomain;
|
||||||
import com.ruoyi.common.core.web.page.TableDataInfo;
|
import com.ruoyi.common.core.web.page.TableDataInfo;
|
||||||
import com.ruoyi.common.log.annotation.Log;
|
import com.ruoyi.common.log.annotation.Log;
|
||||||
import com.ruoyi.common.log.enums.BusinessType;
|
import com.ruoyi.common.log.enums.BusinessType;
|
||||||
@@ -32,10 +33,13 @@ public class RmMonitorPolicyController extends BaseController
|
|||||||
* 查询资源监控策略列表
|
* 查询资源监控策略列表
|
||||||
*/
|
*/
|
||||||
@RequiresPermissions("rocketmq:policy:list")
|
@RequiresPermissions("rocketmq:policy:list")
|
||||||
@GetMapping("/list")
|
@PostMapping("/list")
|
||||||
public TableDataInfo list(RmMonitorPolicy rmMonitorPolicy)
|
public TableDataInfo list(@RequestBody RmMonitorPolicy rmMonitorPolicy)
|
||||||
{
|
{
|
||||||
startPage();
|
PageDomain pageDomain = new PageDomain();
|
||||||
|
pageDomain.setPageNum(rmMonitorPolicy.getPageNum());
|
||||||
|
pageDomain.setPageSize(rmMonitorPolicy.getPageSize());
|
||||||
|
startPage(pageDomain);
|
||||||
List<RmMonitorPolicy> list = rmMonitorPolicyService.selectRmMonitorPolicyList(rmMonitorPolicy);
|
List<RmMonitorPolicy> list = rmMonitorPolicyService.selectRmMonitorPolicyList(rmMonitorPolicy);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
@@ -71,7 +75,12 @@ public class RmMonitorPolicyController extends BaseController
|
|||||||
@PostMapping
|
@PostMapping
|
||||||
public AjaxResult add(@RequestBody RmMonitorPolicy rmMonitorPolicy)
|
public AjaxResult add(@RequestBody RmMonitorPolicy rmMonitorPolicy)
|
||||||
{
|
{
|
||||||
return toAjax(rmMonitorPolicyService.addRmMonitorPolicy(rmMonitorPolicy));
|
int rows = rmMonitorPolicyService.addRmMonitorPolicy(rmMonitorPolicy);
|
||||||
|
if(rows>0){
|
||||||
|
return toAjax(rows);
|
||||||
|
}else{
|
||||||
|
return AjaxResult.error("资源监控策略新增失败,该资源组已绑定其他策略");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监控模板Controller
|
* 监控模板Controller
|
||||||
@@ -85,9 +86,9 @@ public class RmMonitorTemplateController extends BaseController
|
|||||||
@RequiresPermissions("rocketmq:template:edit")
|
@RequiresPermissions("rocketmq:template:edit")
|
||||||
@Log(title = "监控模板", businessType = BusinessType.UPDATE)
|
@Log(title = "监控模板", businessType = BusinessType.UPDATE)
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public AjaxResult edit(@RequestBody RmMonitorTemplate rmMonitorTemplate)
|
public AjaxResult edit(@RequestBody RmMonitorTemplateVo rmMonitorTemplateVo)
|
||||||
{
|
{
|
||||||
return toAjax(rmMonitorTemplateService.updateRmMonitorTemplate(rmMonitorTemplate));
|
return toAjax(rmMonitorTemplateService.updateRmMonitorTemplate(rmMonitorTemplateVo));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,4 +101,14 @@ public class RmMonitorTemplateController extends BaseController
|
|||||||
{
|
{
|
||||||
return toAjax(rmMonitorTemplateService.deleteRmMonitorTemplateByIds(ids));
|
return toAjax(rmMonitorTemplateService.deleteRmMonitorTemplateByIds(ids));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 关联监控模板查询
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("rocketmq:template:list")
|
||||||
|
@GetMapping("/getAllTemplate")
|
||||||
|
public AjaxResult getAllTemplate()
|
||||||
|
{
|
||||||
|
List<Map> list = rmMonitorTemplateService.getAllTemplate();
|
||||||
|
return success(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.rocketmq.handler;
|
package com.ruoyi.rocketmq.handler;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.ruoyi.common.core.constant.SecurityConstants;
|
import com.ruoyi.common.core.constant.SecurityConstants;
|
||||||
@@ -85,6 +86,8 @@ public class DeviceMessageHandler {
|
|||||||
private IInitialSwitchOtherCollectDataService insertInitialSwitchOtherInfo;
|
private IInitialSwitchOtherCollectDataService insertInitialSwitchOtherInfo;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IInitialSystemOtherCollectDataService iInitialSystemOtherCollectDataService;
|
private IInitialSystemOtherCollectDataService iInitialSystemOtherCollectDataService;
|
||||||
|
@Autowired
|
||||||
|
private IRmResourceRemoteService rmResourceRemoteService;
|
||||||
// 在类中添加
|
// 在类中添加
|
||||||
private static final ObjectMapper objectMapper = new ObjectMapper();
|
private static final ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
@@ -102,7 +105,7 @@ public class DeviceMessageHandler {
|
|||||||
registerHandler(MsgEnum.开启交换机采集应答.getValue(), this::handleResponseMessage);
|
registerHandler(MsgEnum.开启交换机采集应答.getValue(), this::handleResponseMessage);
|
||||||
registerHandler(MsgEnum.关闭交换机采集应答.getValue(), this::handleResponseMessage);
|
registerHandler(MsgEnum.关闭交换机采集应答.getValue(), this::handleResponseMessage);
|
||||||
registerHandler(MsgEnum.告警设置应答.getValue(), this::handleResponseMessage);
|
registerHandler(MsgEnum.告警设置应答.getValue(), this::handleResponseMessage);
|
||||||
registerHandler(MsgEnum.执行脚本策略应答.getValue(), this::handleResponseMessage);
|
registerHandler(MsgEnum.执行脚本策略应答.getValue(), this::handleScriptRspMessage);
|
||||||
registerHandler(MsgEnum.Agent版本更新应答.getValue(), this::handleResponseMessage);
|
registerHandler(MsgEnum.Agent版本更新应答.getValue(), this::handleResponseMessage);
|
||||||
|
|
||||||
// 其他类型消息可以单独注册处理器
|
// 其他类型消息可以单独注册处理器
|
||||||
@@ -798,14 +801,39 @@ public class DeviceMessageHandler {
|
|||||||
* 脚本策略应答信息
|
* 脚本策略应答信息
|
||||||
* @param message
|
* @param message
|
||||||
*/
|
*/
|
||||||
private RspVo handleScriptRspMessage(DeviceMessage message) {
|
private void handleScriptRspMessage(DeviceMessage message) {
|
||||||
List<RspVo> rspVoList = JsonDataParser.parseJsonData(message.getData(), RspVo.class);
|
List<RspVo> rspVoList = JsonDataParser.parseJsonData(message.getData(), RspVo.class);
|
||||||
if (!rspVoList.isEmpty()) {
|
if (!rspVoList.isEmpty()) {
|
||||||
RspVo rsp = rspVoList.get(0);
|
RspVo rsp = rspVoList.get(0);
|
||||||
log.info("应答信息:{}",rsp);
|
// 时间戳转换
|
||||||
return rsp;
|
long timestamp = rsp.getTimestamp();
|
||||||
|
long millis = timestamp * 1000;
|
||||||
|
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
|
||||||
|
// 查询资源信息
|
||||||
|
RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote();
|
||||||
|
queryParam.setHardwareSn(message.getClientId());
|
||||||
|
R<RmResourceRegistrationRemote> resourceMsg = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER);
|
||||||
|
RmResourceRegistrationRemote resourceMsgData = resourceMsg.getData();
|
||||||
|
if(rsp.getResCode() == 1){
|
||||||
|
if(rsp.getResult() != null){
|
||||||
|
// 构建脚本执行结果实体类
|
||||||
|
RmResourceRemote insertData = new RmResourceRemote();
|
||||||
|
insertData.setHardwareSn(message.getClientId());
|
||||||
|
insertData.setResourceName(resourceMsgData.getResourceName());
|
||||||
|
insertData.setExternalIp(resourceMsgData.getIpAddress());
|
||||||
|
insertData.setManagementPort(22);
|
||||||
|
insertData.setConnectionMethod("1");
|
||||||
|
insertData.setResourceType(resourceMsgData.getResourceType());
|
||||||
|
insertData.setDescription(rsp.getResult());
|
||||||
|
insertData.setCreateTime(createTime);
|
||||||
|
// 执行插入sql
|
||||||
|
rmResourceRemoteService.insertRmResourceRemote(insertData);
|
||||||
|
log.info("脚本执行结果入库成功:{}",rsp);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.error("脚本执行失败:{}", rsp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 注册应答处理
|
* 注册应答处理
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.ruoyi.rocketmq.mapper;
|
package com.ruoyi.rocketmq.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import com.ruoyi.rocketmq.domain.RmMonitorTemplate;
|
import com.ruoyi.rocketmq.domain.RmMonitorTemplate;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监控模板Mapper接口
|
* 监控模板Mapper接口
|
||||||
*
|
*
|
||||||
@@ -58,4 +60,6 @@ public interface RmMonitorTemplateMapper
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteRmMonitorTemplateByIds(Long[] ids);
|
public int deleteRmMonitorTemplateByIds(Long[] ids);
|
||||||
|
|
||||||
|
List<Map> getAllTemplate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,4 +62,6 @@ public interface RmTemplateLinuxMapper
|
|||||||
public int deleteRmTemplateLinuxByIds(Long[] ids);
|
public int deleteRmTemplateLinuxByIds(Long[] ids);
|
||||||
|
|
||||||
void batchInsertRmTemplateLinux(@Param("list") List<RmTemplateLinux> linuxItems);
|
void batchInsertRmTemplateLinux(@Param("list") List<RmTemplateLinux> linuxItems);
|
||||||
|
|
||||||
|
int deleteByTemplateId(Long templateId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,4 +66,6 @@ public interface RmTemplateSwitchMapper
|
|||||||
* @param switchItems
|
* @param switchItems
|
||||||
*/
|
*/
|
||||||
void batchInsertRmTemplateSwitch(@Param("list") List<RmTemplateSwitch> switchItems);
|
void batchInsertRmTemplateSwitch(@Param("list") List<RmTemplateSwitch> switchItems);
|
||||||
|
|
||||||
|
int deleteByTemplateId(Long templateId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,10 +41,10 @@ public interface IRmMonitorTemplateService
|
|||||||
/**
|
/**
|
||||||
* 修改监控模板
|
* 修改监控模板
|
||||||
*
|
*
|
||||||
* @param rmMonitorTemplate 监控模板
|
* @param rmMonitorTemplateVo 监控模板
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int updateRmMonitorTemplate(RmMonitorTemplate rmMonitorTemplate);
|
public int updateRmMonitorTemplate(RmMonitorTemplateVo rmMonitorTemplateVo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除监控模板
|
* 批量删除监控模板
|
||||||
@@ -76,4 +76,5 @@ public interface IRmMonitorTemplateService
|
|||||||
*/
|
*/
|
||||||
Map<String, Object> getTemplateMsgById(Long id);
|
Map<String, Object> getTemplateMsgById(Long id);
|
||||||
|
|
||||||
|
List<Map> getAllTemplate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,8 +103,46 @@ public class RmMonitorPolicyServiceImpl implements IRmMonitorPolicyService
|
|||||||
@Override
|
@Override
|
||||||
public int updateRmMonitorPolicy(RmMonitorPolicy rmMonitorPolicy)
|
public int updateRmMonitorPolicy(RmMonitorPolicy rmMonitorPolicy)
|
||||||
{
|
{
|
||||||
|
// 绑定资源组之前判断该资源组是否已经绑定其他模板
|
||||||
|
Long resourceGroupId = rmMonitorPolicy.getResourceGroupId();
|
||||||
|
// 查询资源组是否已绑定
|
||||||
|
RmMonitorPolicy queryParam = new RmMonitorPolicy();
|
||||||
|
queryParam.setResourceGroupId(resourceGroupId);
|
||||||
|
List<RmMonitorPolicy> exits = rmMonitorPolicyMapper.selectRmMonitorPolicyList(queryParam);
|
||||||
|
if(!exits.isEmpty()){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
rmMonitorPolicy.setUpdateTime(DateUtils.getNowDate());
|
rmMonitorPolicy.setUpdateTime(DateUtils.getNowDate());
|
||||||
return rmMonitorPolicyMapper.updateRmMonitorPolicy(rmMonitorPolicy);
|
rmMonitorPolicyMapper.updateRmMonitorPolicy(rmMonitorPolicy);
|
||||||
|
// 模板绑定资源组信息
|
||||||
|
RmMonitorTemplate rmMonitorTemplate = new RmMonitorTemplate();
|
||||||
|
rmMonitorTemplate.setId(rmMonitorPolicy.getTemplateId());
|
||||||
|
rmMonitorTemplate.setResourceGroupId(rmMonitorPolicy.getResourceGroupId());
|
||||||
|
rmMonitorTemplateMapper.updateRmMonitorTemplate(rmMonitorTemplate);
|
||||||
|
// 拿到采集周期
|
||||||
|
List<RmMonitorPolicyVo> collectionAndIdList = rmMonitorPolicy.getCollectionAndIdList();
|
||||||
|
if(!collectionAndIdList.isEmpty()){
|
||||||
|
if("linux".equals(rmMonitorPolicy.getResourceType())){
|
||||||
|
for (RmMonitorPolicyVo rmMonitorPolicyVo : collectionAndIdList) {
|
||||||
|
// 添加采集周期
|
||||||
|
RmTemplateLinux rmTemplateLinux = new RmTemplateLinux();
|
||||||
|
rmTemplateLinux.setId(rmMonitorPolicyVo.getId());
|
||||||
|
rmTemplateLinux.setCollectionCycle(rmMonitorPolicyVo.getCollectionCycle());
|
||||||
|
rmTemplateLinuxMapper.updateRmTemplateLinux(rmTemplateLinux);
|
||||||
|
}
|
||||||
|
}else if("switch".equals(rmMonitorPolicy.getResourceType())){
|
||||||
|
for (RmMonitorPolicyVo rmMonitorPolicyVo : collectionAndIdList) {
|
||||||
|
// 添加采集周期
|
||||||
|
RmTemplateSwitch rmTemplateSwitch = new RmTemplateSwitch();
|
||||||
|
rmTemplateSwitch.setId(rmMonitorPolicyVo.getId());
|
||||||
|
rmTemplateSwitch.setCollectionCycle(rmMonitorPolicyVo.getCollectionCycle());
|
||||||
|
rmTemplateSwitchMapper.updateRmTemplateSwitch(rmTemplateSwitch);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -133,6 +171,15 @@ public class RmMonitorPolicyServiceImpl implements IRmMonitorPolicyService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int addRmMonitorPolicy(RmMonitorPolicy rmMonitorPolicy) {
|
public int addRmMonitorPolicy(RmMonitorPolicy rmMonitorPolicy) {
|
||||||
|
// 绑定资源组之前判断该资源组是否已经绑定其他模板
|
||||||
|
Long resourceGroupId = rmMonitorPolicy.getResourceGroupId();
|
||||||
|
// 查询资源组是否已绑定
|
||||||
|
RmMonitorPolicy queryParam = new RmMonitorPolicy();
|
||||||
|
queryParam.setResourceGroupId(resourceGroupId);
|
||||||
|
List<RmMonitorPolicy> exits = rmMonitorPolicyMapper.selectRmMonitorPolicyList(queryParam);
|
||||||
|
if(!exits.isEmpty()){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
rmMonitorPolicyMapper.insertRmMonitorPolicy(rmMonitorPolicy);
|
rmMonitorPolicyMapper.insertRmMonitorPolicy(rmMonitorPolicy);
|
||||||
// 模板绑定资源组信息
|
// 模板绑定资源组信息
|
||||||
RmMonitorTemplate rmMonitorTemplate = new RmMonitorTemplate();
|
RmMonitorTemplate rmMonitorTemplate = new RmMonitorTemplate();
|
||||||
|
|||||||
@@ -17,9 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
/**
|
/**
|
||||||
* 监控模板Service业务层处理
|
* 监控模板Service业务层处理
|
||||||
@@ -80,16 +78,36 @@ public class RmMonitorTemplateServiceImpl implements IRmMonitorTemplateService
|
|||||||
/**
|
/**
|
||||||
* 修改监控模板
|
* 修改监控模板
|
||||||
*
|
*
|
||||||
* @param rmMonitorTemplate 监控模板
|
* @param rmMonitorTemplateVo 监控模板
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int updateRmMonitorTemplate(RmMonitorTemplate rmMonitorTemplate)
|
public int updateRmMonitorTemplate(RmMonitorTemplateVo rmMonitorTemplateVo)
|
||||||
{
|
{
|
||||||
|
RmMonitorTemplate rmMonitorTemplate = new RmMonitorTemplate();
|
||||||
|
BeanUtils.copyProperties(rmMonitorTemplateVo, rmMonitorTemplate);
|
||||||
rmMonitorTemplate.setUpdateTime(DateUtils.getNowDate());
|
rmMonitorTemplate.setUpdateTime(DateUtils.getNowDate());
|
||||||
return rmMonitorTemplateMapper.updateRmMonitorTemplate(rmMonitorTemplate);
|
rmMonitorTemplateMapper.updateRmMonitorTemplate(rmMonitorTemplate);
|
||||||
}
|
Long templateId = rmMonitorTemplate.getId();
|
||||||
|
// 检查监控项是否有变动
|
||||||
|
boolean hasMonitorChanges = checkMonitorChanges(rmMonitorTemplateVo, templateId);
|
||||||
|
|
||||||
|
if (!hasMonitorChanges) {
|
||||||
|
// 如果没有变动,直接返回
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// 先删除旧的监控项
|
||||||
|
deleteExistingMonitorItems(templateId, rmMonitorTemplateVo.getResourceType());
|
||||||
|
// linux系统信息
|
||||||
|
if ("linux".equals(rmMonitorTemplateVo.getResourceType())) {
|
||||||
|
processLinuxItems(rmMonitorTemplateVo, templateId);
|
||||||
|
}
|
||||||
|
// 华为交换机信息
|
||||||
|
else if ("switch".equals(rmMonitorTemplateVo.getResourceType())) {
|
||||||
|
processSwitchItems(rmMonitorTemplateVo, templateId);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 批量删除监控模板
|
* 批量删除监控模板
|
||||||
*
|
*
|
||||||
@@ -123,65 +141,12 @@ public class RmMonitorTemplateServiceImpl implements IRmMonitorTemplateService
|
|||||||
Long templateId = rmMonitorTemplate.getId();
|
Long templateId = rmMonitorTemplate.getId();
|
||||||
|
|
||||||
// linux系统信息
|
// linux系统信息
|
||||||
if("linux".equals(rmMonitorTemplateVo.getResourceType())){
|
if ("linux".equals(rmMonitorTemplateVo.getResourceType())) {
|
||||||
// 根据监控信息id查询详细信息
|
processLinuxItems(rmMonitorTemplateVo, templateId);
|
||||||
List<RmInitialMonitorItem> monitorItems = rmInitialMonitorItemMapper.selectRmInitialMonitorItemByIds(rmMonitorTemplateVo.getMonitorIds());
|
|
||||||
// 批量准备插入数据
|
|
||||||
List<RmTemplateLinux> linuxItems = monitorItems.stream()
|
|
||||||
.map(item -> {
|
|
||||||
RmTemplateLinux linuxItem = new RmTemplateLinux();
|
|
||||||
linuxItem.setTemplateId(templateId);
|
|
||||||
linuxItem.setMetricKey(item.getMetricKey());
|
|
||||||
linuxItem.setMetricName(item.getMetricName());
|
|
||||||
linuxItem.setDataType(item.getDataType());
|
|
||||||
linuxItem.setItemType(item.getItemType());
|
|
||||||
return linuxItem;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
// 批量插入
|
|
||||||
if(!linuxItems.isEmpty()) {
|
|
||||||
rmTemplateLinuxMapper.batchInsertRmTemplateLinux(linuxItems);
|
|
||||||
int monitorCount = (int) linuxItems.stream().filter(r -> "monitorItem".equals(r.getItemType())).count();
|
|
||||||
int autoDiscoverCount = (int) linuxItems.stream().filter(r -> "autoDiscoverItem".equals(r.getItemType())).count();
|
|
||||||
RmMonitorTemplate monitorTemplate = new RmMonitorTemplate();
|
|
||||||
monitorTemplate.setId(templateId);
|
|
||||||
monitorTemplate.setMonitorItems(monitorCount + "");
|
|
||||||
monitorTemplate.setDiscoveryRules(autoDiscoverCount + "");
|
|
||||||
monitorTemplate.setResourcyType("linux");
|
|
||||||
rmMonitorTemplateMapper.updateRmMonitorTemplate(monitorTemplate);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 华为交换机信息
|
// 华为交换机信息
|
||||||
if("switch".equals(rmMonitorTemplateVo.getResourceType())){
|
else if ("switch".equals(rmMonitorTemplateVo.getResourceType())) {
|
||||||
// 根据监控信息id查询详细信息
|
processSwitchItems(rmMonitorTemplateVo, templateId);
|
||||||
List<RmInitialMonitorItem> monitorItems = rmInitialMonitorItemMapper.selectRmInitialMonitorItemByIds(rmMonitorTemplateVo.getMonitorIds());
|
|
||||||
// 批量准备插入数据
|
|
||||||
List<RmTemplateSwitch> switchItems = monitorItems.stream()
|
|
||||||
.map(item -> {
|
|
||||||
RmTemplateSwitch switchItem = new RmTemplateSwitch();
|
|
||||||
switchItem.setTemplateId(templateId);
|
|
||||||
switchItem.setMetricKey(item.getMetricKey());
|
|
||||||
switchItem.setMetricName(item.getMetricName());
|
|
||||||
switchItem.setOid(item.getOid());
|
|
||||||
switchItem.setFilterValue(item.getFilterValue());
|
|
||||||
switchItem.setSwitchDescription(item.getMonitorDescription());
|
|
||||||
switchItem.setDataType(item.getDataType());
|
|
||||||
switchItem.setItemType(item.getItemType());
|
|
||||||
return switchItem;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
// 批量插入
|
|
||||||
if(!switchItems.isEmpty()) {
|
|
||||||
rmTemplateSwitchMapper.batchInsertRmTemplateSwitch(switchItems);
|
|
||||||
int monitorCount = (int) switchItems.stream().filter(r -> "monitorItem".equals(r.getItemType())).count();
|
|
||||||
int autoDiscoverCount = (int) switchItems.stream().filter(r -> "autoDiscoverItem".equals(r.getItemType())).count();
|
|
||||||
RmMonitorTemplate monitorTemplate = new RmMonitorTemplate();
|
|
||||||
monitorTemplate.setId(templateId);
|
|
||||||
monitorTemplate.setMonitorItems(monitorCount + "");
|
|
||||||
monitorTemplate.setDiscoveryRules(autoDiscoverCount + "");
|
|
||||||
monitorTemplate.setResourcyType("switch");
|
|
||||||
rmMonitorTemplateMapper.updateRmMonitorTemplate(monitorTemplate);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -211,4 +176,168 @@ public class RmMonitorTemplateServiceImpl implements IRmMonitorTemplateService
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map> getAllTemplate() {
|
||||||
|
return rmMonitorTemplateMapper.getAllTemplate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除现有的监控项
|
||||||
|
*/
|
||||||
|
private void deleteExistingMonitorItems(Long templateId, String resourceType) {
|
||||||
|
if ("linux".equals(resourceType)) {
|
||||||
|
rmTemplateLinuxMapper.deleteByTemplateId(templateId);
|
||||||
|
} else if ("switch".equals(resourceType)) {
|
||||||
|
rmTemplateSwitchMapper.deleteByTemplateId(templateId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 检查监控项是否有变动
|
||||||
|
*/
|
||||||
|
private boolean checkMonitorChanges(RmMonitorTemplateVo rmMonitorTemplateVo, Long templateId) {
|
||||||
|
if (rmMonitorTemplateVo.getMonitorIds() == null || rmMonitorTemplateVo.getMonitorIds().length == 0) {
|
||||||
|
return hasExistingMonitorItems(templateId, rmMonitorTemplateVo.getResourceType());
|
||||||
|
}
|
||||||
|
// 获取现有的监控项ID
|
||||||
|
List<Long> existingMonitorIds = new ArrayList<>();
|
||||||
|
if ("linux".equals(rmMonitorTemplateVo.getResourceType())) {
|
||||||
|
RmTemplateLinux queryParam = new RmTemplateLinux();
|
||||||
|
queryParam.setTemplateId(templateId);
|
||||||
|
List<RmTemplateLinux> existingItems = rmTemplateLinuxMapper.selectRmTemplateLinuxList(queryParam);
|
||||||
|
for (RmTemplateLinux existingItem : existingItems) {
|
||||||
|
Long id = existingItem.getId();
|
||||||
|
existingMonitorIds.add(id);
|
||||||
|
}
|
||||||
|
// 这里需要根据实际情况获取监控项ID,可能需要关联查询
|
||||||
|
} else if ("switch".equals(rmMonitorTemplateVo.getResourceType())) {
|
||||||
|
RmTemplateSwitch queryParam = new RmTemplateSwitch();
|
||||||
|
queryParam.setTemplateId(templateId);
|
||||||
|
List<RmTemplateSwitch> existingItems = rmTemplateSwitchMapper.selectRmTemplateSwitchList(queryParam);
|
||||||
|
List<Long> idList = new ArrayList<>();
|
||||||
|
for (RmTemplateSwitch existingItem : existingItems) {
|
||||||
|
Long id = existingItem.getId();
|
||||||
|
existingMonitorIds.add(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Long[] nowIds = rmMonitorTemplateVo.getMonitorIds();
|
||||||
|
if(isEqualIgnoreOrder(existingMonitorIds, nowIds)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 简化处理:只要有监控项就认为有变动
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 检查是否存在现有的监控项
|
||||||
|
*/
|
||||||
|
private boolean hasExistingMonitorItems(Long templateId, String resourceType) {
|
||||||
|
int count = 0;
|
||||||
|
if ("linux".equals(resourceType)) {
|
||||||
|
RmTemplateLinux queryParam = new RmTemplateLinux();
|
||||||
|
queryParam.setTemplateId(templateId);
|
||||||
|
count = rmTemplateLinuxMapper.selectRmTemplateLinuxList(queryParam).size();
|
||||||
|
} else if ("switch".equals(resourceType)) {
|
||||||
|
RmTemplateSwitch queryParam = new RmTemplateSwitch();
|
||||||
|
queryParam.setTemplateId(templateId);
|
||||||
|
count = rmTemplateSwitchMapper.selectRmTemplateSwitchList(queryParam).size();
|
||||||
|
}
|
||||||
|
return count > 0;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 比较List和数组内容是否一致(忽略顺序)
|
||||||
|
*/
|
||||||
|
private boolean isEqualIgnoreOrder(List<Long> list, Long[] array) {
|
||||||
|
if (list == null && array == null) return true;
|
||||||
|
if (list == null || array == null) return false;
|
||||||
|
if (list.size() != array.length) return false;
|
||||||
|
|
||||||
|
// 使用Set进行快速比较(如果允许重复元素,需要改用频率统计)
|
||||||
|
Set<Long> set1 = new HashSet<>(list);
|
||||||
|
Set<Long> set2 = new HashSet<>(Arrays.asList(array));
|
||||||
|
|
||||||
|
return set1.equals(set2);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 处理Linux监控项
|
||||||
|
*/
|
||||||
|
private void processLinuxItems(RmMonitorTemplateVo rmMonitorTemplateVo, Long templateId) {
|
||||||
|
if (rmMonitorTemplateVo.getMonitorIds() == null || rmMonitorTemplateVo.getMonitorIds().length == 0) {
|
||||||
|
// 如果没有监控项,更新计数为0
|
||||||
|
updateTemplateCounts(templateId, 0, 0, "linux");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据监控信息id查询详细信息
|
||||||
|
List<RmInitialMonitorItem> monitorItems = rmInitialMonitorItemMapper.selectRmInitialMonitorItemByIds(rmMonitorTemplateVo.getMonitorIds());
|
||||||
|
|
||||||
|
// 批量准备插入数据
|
||||||
|
List<RmTemplateLinux> linuxItems = monitorItems.stream()
|
||||||
|
.map(item -> {
|
||||||
|
RmTemplateLinux linuxItem = new RmTemplateLinux();
|
||||||
|
linuxItem.setTemplateId(templateId);
|
||||||
|
linuxItem.setMetricKey(item.getMetricKey());
|
||||||
|
linuxItem.setMetricName(item.getMetricName());
|
||||||
|
linuxItem.setDataType(item.getDataType());
|
||||||
|
linuxItem.setItemType(item.getItemType());
|
||||||
|
return linuxItem;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 批量插入
|
||||||
|
if (!linuxItems.isEmpty()) {
|
||||||
|
rmTemplateLinuxMapper.batchInsertRmTemplateLinux(linuxItems);
|
||||||
|
int monitorCount = (int) linuxItems.stream().filter(r -> "monitorItem".equals(r.getItemType())).count();
|
||||||
|
int autoDiscoverCount = (int) linuxItems.stream().filter(r -> "autoDiscoverItem".equals(r.getItemType())).count();
|
||||||
|
updateTemplateCounts(templateId, monitorCount, autoDiscoverCount, "linux");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理交换机监控项
|
||||||
|
*/
|
||||||
|
private void processSwitchItems(RmMonitorTemplateVo rmMonitorTemplateVo, Long templateId) {
|
||||||
|
if (rmMonitorTemplateVo.getMonitorIds() == null || rmMonitorTemplateVo.getMonitorIds().length == 0) {
|
||||||
|
// 如果没有监控项,更新计数为0
|
||||||
|
updateTemplateCounts(templateId, 0, 0, "switch");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据监控信息id查询详细信息
|
||||||
|
List<RmInitialMonitorItem> monitorItems = rmInitialMonitorItemMapper.selectRmInitialMonitorItemByIds(rmMonitorTemplateVo.getMonitorIds());
|
||||||
|
|
||||||
|
// 批量准备插入数据
|
||||||
|
List<RmTemplateSwitch> switchItems = monitorItems.stream()
|
||||||
|
.map(item -> {
|
||||||
|
RmTemplateSwitch switchItem = new RmTemplateSwitch();
|
||||||
|
switchItem.setTemplateId(templateId);
|
||||||
|
switchItem.setMetricKey(item.getMetricKey());
|
||||||
|
switchItem.setMetricName(item.getMetricName());
|
||||||
|
switchItem.setOid(item.getOid());
|
||||||
|
switchItem.setFilterValue(item.getFilterValue());
|
||||||
|
switchItem.setSwitchDescription(item.getMonitorDescription());
|
||||||
|
switchItem.setDataType(item.getDataType());
|
||||||
|
switchItem.setItemType(item.getItemType());
|
||||||
|
return switchItem;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 批量插入
|
||||||
|
if (!switchItems.isEmpty()) {
|
||||||
|
rmTemplateSwitchMapper.batchInsertRmTemplateSwitch(switchItems);
|
||||||
|
int monitorCount = (int) switchItems.stream().filter(r -> "monitorItem".equals(r.getItemType())).count();
|
||||||
|
int autoDiscoverCount = (int) switchItems.stream().filter(r -> "autoDiscoverItem".equals(r.getItemType())).count();
|
||||||
|
updateTemplateCounts(templateId, monitorCount, autoDiscoverCount, "switch");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新模板计数信息
|
||||||
|
*/
|
||||||
|
private void updateTemplateCounts(Long templateId, int monitorCount, int autoDiscoverCount, String resourceType) {
|
||||||
|
RmMonitorTemplate monitorTemplate = new RmMonitorTemplate();
|
||||||
|
monitorTemplate.setId(templateId);
|
||||||
|
monitorTemplate.setMonitorItems(String.valueOf(monitorCount));
|
||||||
|
monitorTemplate.setDiscoveryRules(String.valueOf(autoDiscoverCount));
|
||||||
|
monitorTemplate.setResourcyType(resourceType);
|
||||||
|
rmMonitorTemplateMapper.updateRmMonitorTemplate(monitorTemplate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,4 +94,8 @@
|
|||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<select id="getAllTemplate" resultType="java.util.Map">
|
||||||
|
select id, template_name templateName,resourcy_type resourceType from rm_monitor_template
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -125,4 +125,8 @@
|
|||||||
)
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<delete id="deleteByTemplateId" parameterType="Long">
|
||||||
|
delete from rm_template_linux where template_id = #{templateId}
|
||||||
|
</delete>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -157,4 +157,8 @@
|
|||||||
)
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<delete id="deleteByTemplateId" parameterType="Long">
|
||||||
|
delete from rm_template_switch where template_id = #{templateId}
|
||||||
|
</delete>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user