[alerter,manage] 告警相关接口调整

This commit is contained in:
tomsun28
2021-12-13 01:16:56 +08:00
parent 441df8f3c2
commit fac7713bf2
8 changed files with 69 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
package com.usthe.alert.controller;
import com.usthe.alert.pojo.entity.AlertDefine;
import com.usthe.alert.pojo.entity.AlertDefineBind;
import com.usthe.alert.service.AlertDefineService;
import com.usthe.common.entity.dto.Message;
import io.swagger.annotations.Api;
@@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
import static com.usthe.common.util.CommonConstants.MONITOR_NOT_EXIST_CODE;
@@ -79,13 +81,21 @@ public class AlertDefineController {
return ResponseEntity.ok(new Message<>("Delete success"));
}
@PostMapping(path = "/{alertId}/monitors")
@PostMapping(path = "/{alertDefineId}/monitors")
@ApiOperation(value = "应用告警定义与监控关联", notes = "应用指定告警定义与监控关联关系")
public ResponseEntity<Message<Void>> applyAlertDefineMonitorsBind(
@ApiParam(value = "告警定义ID", example = "6565463543") @PathVariable("alertId") long alertId,
@RequestBody Map<Long, String> monitorMap) {
alertDefineService.applyBindAlertDefineMonitors(alertId, monitorMap);
@ApiParam(value = "告警定义ID", example = "6565463543") @PathVariable("alertDefineId") long alertDefineId,
@RequestBody List<AlertDefineBind> alertDefineBinds) {
alertDefineService.applyBindAlertDefineMonitors(alertDefineId, alertDefineBinds);
return ResponseEntity.ok(new Message<>("Apply success"));
}
@GetMapping(path = "/{alertDefineId}/monitors")
@ApiOperation(value = "应用告警定义与监控关联", notes = "应用指定告警定义与监控关联关系")
public ResponseEntity<Message<List<AlertDefineBind>>> getAlertDefineMonitorsBind(
@ApiParam(value = "告警定义ID", example = "6565463543") @PathVariable("alertDefineId") long alertDefineId) {
List<AlertDefineBind> defineBinds = alertDefineService.getBindAlertDefineMonitors(alertDefineId);
return ResponseEntity.ok(new Message<>(defineBinds));
}
}

View File

@@ -4,6 +4,8 @@ import com.usthe.alert.pojo.entity.AlertDefineBind;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
* AlertDefineBind 数据库操作
* @author tom
@@ -16,4 +18,11 @@ public interface AlertDefineBindDao extends JpaRepository<AlertDefineBind, Long>
* @param alertDefineId 告警定义ID
*/
void deleteAlertDefineBindsByAlertDefineIdEquals(Long alertDefineId);
/**
* 根据告警定义ID查询监控关联信息
* @param alertDefineId 告警定义ID
* @return 关联监控信息
*/
List<AlertDefineBind> getAlertDefineBindsByAlertDefineIdEquals(Long alertDefineId);
}

View File

@@ -1,6 +1,7 @@
package com.usthe.alert.service;
import com.usthe.alert.pojo.entity.AlertDefine;
import com.usthe.alert.pojo.entity.AlertDefineBind;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
@@ -72,9 +73,9 @@ public interface AlertDefineService {
/**
* 应用告警定于与监控关联关系
* @param alertId 告警定义ID
* @param monitorMap 监控ID-名称 MAP
* @param alertDefineBinds 关联关系
*/
void applyBindAlertDefineMonitors(Long alertId, Map<Long, String> monitorMap);
void applyBindAlertDefineMonitors(Long alertId, List<AlertDefineBind> alertDefineBinds);
/**
* 查询与此监控ID关联的指定指标组匹配的告警定义
@@ -92,4 +93,11 @@ public interface AlertDefineService {
* @return 查询结果
*/
Page<AlertDefine> getAlertDefines(Specification<AlertDefine> specification, PageRequest pageRequest);
/**
* 根据告警定义ID查询其关联的监控列表关联信息
* @param alertDefineId 告警定义ID
* @return 监控列表关联信息
*/
List<AlertDefineBind> getBindAlertDefineMonitors(long alertDefineId);
}

View File

@@ -73,16 +73,12 @@ public class AlertDefineServiceImpl implements AlertDefineService {
}
@Override
public void applyBindAlertDefineMonitors(Long alertId, Map<Long, String> monitorMap) {
public void applyBindAlertDefineMonitors(Long alertId, List<AlertDefineBind> alertDefineBinds) {
// todo 校验此告警定义和监控是否存在
// 先删除此告警的所有关联
alertDefineBindDao.deleteAlertDefineBindsByAlertDefineIdEquals(alertId);
// 保存关联
List<AlertDefineBind> alertDefineBinds = monitorMap.entrySet().stream().map(entry ->
AlertDefineBind.builder().alertDefineId(alertId).monitorId(entry.getKey())
.monitorName(entry.getValue()).build())
.collect(Collectors.toList());
alertDefineBindDao.saveAll(alertDefineBinds);
}
@@ -101,4 +97,9 @@ public class AlertDefineServiceImpl implements AlertDefineService {
public Page<AlertDefine> getAlertDefines(Specification<AlertDefine> specification, PageRequest pageRequest) {
return alertDefineDao.findAll(specification, pageRequest);
}
@Override
public List<AlertDefineBind> getBindAlertDefineMonitors(long alertDefineId) {
return alertDefineBindDao.getAlertDefineBindsByAlertDefineIdEquals(alertDefineId);
}
}