[alter,webapp]fix 告警定义关联监控问题

This commit is contained in:
tomsun28
2022-01-30 12:34:20 +08:00
parent 9cf56d7c01
commit 9b08d8d19b
9 changed files with 31 additions and 22 deletions

View File

@@ -1,7 +1,7 @@
package com.usthe.alert.controller; package com.usthe.alert.controller;
import com.usthe.common.entity.alerter.AlertDefine; import com.usthe.common.entity.alerter.AlertDefine;
import com.usthe.common.entity.alerter.AlertDefineBind; import com.usthe.common.entity.alerter.AlertDefineMonitorBind;
import com.usthe.alert.service.AlertDefineService; import com.usthe.alert.service.AlertDefineService;
import com.usthe.common.entity.dto.Message; import com.usthe.common.entity.dto.Message;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -84,16 +84,16 @@ public class AlertDefineController {
@ApiOperation(value = "应用告警定义与监控关联", notes = "应用指定告警定义与监控关联关系") @ApiOperation(value = "应用告警定义与监控关联", notes = "应用指定告警定义与监控关联关系")
public ResponseEntity<Message<Void>> applyAlertDefineMonitorsBind( public ResponseEntity<Message<Void>> applyAlertDefineMonitorsBind(
@ApiParam(value = "告警定义ID", example = "6565463543") @PathVariable("alertDefineId") long alertDefineId, @ApiParam(value = "告警定义ID", example = "6565463543") @PathVariable("alertDefineId") long alertDefineId,
@RequestBody List<AlertDefineBind> alertDefineBinds) { @RequestBody List<AlertDefineMonitorBind> alertDefineMonitorBinds) {
alertDefineService.applyBindAlertDefineMonitors(alertDefineId, alertDefineBinds); alertDefineService.applyBindAlertDefineMonitors(alertDefineId, alertDefineMonitorBinds);
return ResponseEntity.ok(new Message<>("Apply success")); return ResponseEntity.ok(new Message<>("Apply success"));
} }
@GetMapping(path = "/{alertDefineId}/monitors") @GetMapping(path = "/{alertDefineId}/monitors")
@ApiOperation(value = "应用告警定义与监控关联", notes = "应用指定告警定义与监控关联关系") @ApiOperation(value = "应用告警定义与监控关联", notes = "应用指定告警定义与监控关联关系")
public ResponseEntity<Message<List<AlertDefineBind>>> getAlertDefineMonitorsBind( public ResponseEntity<Message<List<AlertDefineMonitorBind>>> getAlertDefineMonitorsBind(
@ApiParam(value = "告警定义ID", example = "6565463543") @PathVariable("alertDefineId") long alertDefineId) { @ApiParam(value = "告警定义ID", example = "6565463543") @PathVariable("alertDefineId") long alertDefineId) {
List<AlertDefineBind> defineBinds = alertDefineService.getBindAlertDefineMonitors(alertDefineId); List<AlertDefineMonitorBind> defineBinds = alertDefineService.getBindAlertDefineMonitors(alertDefineId);
return ResponseEntity.ok(new Message<>(defineBinds)); return ResponseEntity.ok(new Message<>(defineBinds));
} }

View File

@@ -1,6 +1,6 @@
package com.usthe.alert.dao; package com.usthe.alert.dao;
import com.usthe.common.entity.alerter.AlertDefineBind; import com.usthe.common.entity.alerter.AlertDefineMonitorBind;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -11,7 +11,7 @@ import java.util.List;
* @author tom * @author tom
* @date 2021/12/9 10:03 * @date 2021/12/9 10:03
*/ */
public interface AlertDefineBindDao extends JpaRepository<AlertDefineBind, Long>, JpaSpecificationExecutor<AlertDefineBind> { public interface AlertDefineBindDao extends JpaRepository<AlertDefineMonitorBind, Long>, JpaSpecificationExecutor<AlertDefineMonitorBind> {
/** /**
* 根据告警定义ID删除告警定义与监控关联 * 根据告警定义ID删除告警定义与监控关联
@@ -24,5 +24,5 @@ public interface AlertDefineBindDao extends JpaRepository<AlertDefineBind, Long>
* @param alertDefineId 告警定义ID * @param alertDefineId 告警定义ID
* @return 关联监控信息 * @return 关联监控信息
*/ */
List<AlertDefineBind> getAlertDefineBindsByAlertDefineIdEquals(Long alertDefineId); List<AlertDefineMonitorBind> getAlertDefineBindsByAlertDefineIdEquals(Long alertDefineId);
} }

View File

@@ -28,7 +28,7 @@ public interface AlertDefineDao extends JpaRepository<AlertDefine, Long>, JpaSpe
* @param metrics 指标组 * @param metrics 指标组
* @return 告警定义列表 * @return 告警定义列表
*/ */
@Query("select define from AlertDefine define join AlertDefineBind bind on bind.alertDefineId = define.id " + @Query("select define from AlertDefine define join AlertDefineMonitorBind bind on bind.alertDefineId = define.id " +
"where bind.monitorId = :monitorId and define.metric = :metrics and define.enable = true") "where bind.monitorId = :monitorId and define.metric = :metrics and define.enable = true")
List<AlertDefine> queryAlertDefinesByMonitor(@Param(value = "monitorId") Long monitorId, List<AlertDefine> queryAlertDefinesByMonitor(@Param(value = "monitorId") Long monitorId,
@Param(value = "metrics") String metrics); @Param(value = "metrics") String metrics);

View File

@@ -1,7 +1,7 @@
package com.usthe.alert.service; package com.usthe.alert.service;
import com.usthe.common.entity.alerter.AlertDefine; import com.usthe.common.entity.alerter.AlertDefine;
import com.usthe.common.entity.alerter.AlertDefineBind; import com.usthe.common.entity.alerter.AlertDefineMonitorBind;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
@@ -75,7 +75,7 @@ public interface AlertDefineService {
* @param alertId 告警定义ID * @param alertId 告警定义ID
* @param alertDefineBinds 关联关系 * @param alertDefineBinds 关联关系
*/ */
void applyBindAlertDefineMonitors(Long alertId, List<AlertDefineBind> alertDefineBinds); void applyBindAlertDefineMonitors(Long alertId, List<AlertDefineMonitorBind> alertDefineBinds);
/** /**
* 查询与此监控ID关联的指定指标组匹配的告警定义 * 查询与此监控ID关联的指定指标组匹配的告警定义
@@ -99,5 +99,5 @@ public interface AlertDefineService {
* @param alertDefineId 告警定义ID * @param alertDefineId 告警定义ID
* @return 监控列表关联信息 * @return 监控列表关联信息
*/ */
List<AlertDefineBind> getBindAlertDefineMonitors(long alertDefineId); List<AlertDefineMonitorBind> getBindAlertDefineMonitors(long alertDefineId);
} }

View File

@@ -3,7 +3,7 @@ package com.usthe.alert.service.impl;
import com.usthe.alert.dao.AlertDefineBindDao; import com.usthe.alert.dao.AlertDefineBindDao;
import com.usthe.alert.dao.AlertDefineDao; import com.usthe.alert.dao.AlertDefineDao;
import com.usthe.common.entity.alerter.AlertDefine; import com.usthe.common.entity.alerter.AlertDefine;
import com.usthe.common.entity.alerter.AlertDefineBind; import com.usthe.common.entity.alerter.AlertDefineMonitorBind;
import com.usthe.alert.service.AlertDefineService; import com.usthe.alert.service.AlertDefineService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -73,7 +73,7 @@ public class AlertDefineServiceImpl implements AlertDefineService {
} }
@Override @Override
public void applyBindAlertDefineMonitors(Long alertId, List<AlertDefineBind> alertDefineBinds) { public void applyBindAlertDefineMonitors(Long alertId, List<AlertDefineMonitorBind> alertDefineBinds) {
// todo 校验此告警定义和监控是否存在 // todo 校验此告警定义和监控是否存在
// 先删除此告警的所有关联 // 先删除此告警的所有关联
@@ -99,7 +99,7 @@ public class AlertDefineServiceImpl implements AlertDefineService {
} }
@Override @Override
public List<AlertDefineBind> getBindAlertDefineMonitors(long alertDefineId) { public List<AlertDefineMonitorBind> getBindAlertDefineMonitors(long alertDefineId) {
return alertDefineBindDao.getAlertDefineBindsByAlertDefineIdEquals(alertDefineId); return alertDefineBindDao.getAlertDefineBindsByAlertDefineIdEquals(alertDefineId);
} }
} }

View File

@@ -1,5 +1,6 @@
package com.usthe.common.entity.alerter; package com.usthe.common.entity.alerter;
import com.usthe.common.entity.manager.Monitor;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -9,9 +10,12 @@ import lombok.NoArgsConstructor;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.GenerationType;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table; import javax.persistence.Table;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -30,7 +34,7 @@ import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_WRITE;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@ApiModel(description = "告警定义与监控关联实体") @ApiModel(description = "告警定义与监控关联实体")
public class AlertDefineBind { public class AlertDefineMonitorBind {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -41,10 +45,11 @@ public class AlertDefineBind {
private Long alertDefineId; private Long alertDefineId;
@ApiModelProperty(value = "监控ID", example = "87432674336", accessMode = READ_WRITE, position = 2) @ApiModelProperty(value = "监控ID", example = "87432674336", accessMode = READ_WRITE, position = 2)
@Column(name = "monitor_id")
private Long monitorId; private Long monitorId;
@ApiModelProperty(value = "监控名称", example = "Linux_192.123.23.1", accessMode = READ_WRITE, position = 3) @ApiModelProperty(value = "租户ID", example = "42343", accessMode = READ_WRITE, position = 3)
private String monitorName; private Long tenantId;
@ApiModelProperty(value = "记录创建时间(毫秒时间戳)", example = "1612198922000", accessMode = READ_ONLY, position = 4) @ApiModelProperty(value = "记录创建时间(毫秒时间戳)", example = "1612198922000", accessMode = READ_ONLY, position = 4)
@Column(insertable = false, updatable = false) @Column(insertable = false, updatable = false)
@@ -54,4 +59,7 @@ public class AlertDefineBind {
@Column(insertable = false, updatable = false) @Column(insertable = false, updatable = false)
private LocalDateTime gmtUpdate; private LocalDateTime gmtUpdate;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "monitor_id", referencedColumnName = "id", insertable = false, updatable = false)
private Monitor monitor;
} }

View File

@@ -1,8 +1,10 @@
import { Monitor } from './Monitor';
export class AlertDefineBind { export class AlertDefineBind {
id!: number; id!: number;
alertDefineId!: number; alertDefineId!: number;
monitorId!: number; monitorId!: number;
monitorName!: string; monitor!: Monitor;
gmtCreate!: number; gmtCreate!: number;
gmtUpdate!: number; gmtUpdate!: number;
} }

View File

@@ -307,7 +307,7 @@ export class AlertSettingComponent implements OnInit {
let bindRecode: Record<number, string> = {}; let bindRecode: Record<number, string> = {};
if (defineBindData.data != undefined) { if (defineBindData.data != undefined) {
defineBindData.data.forEach(bind => { defineBindData.data.forEach(bind => {
bindRecode[bind.monitorId] = bind.monitorName; bindRecode[bind.monitorId] = bind.monitor.name;
}); });
} }
let listTmp: any[] = []; let listTmp: any[] = [];
@@ -337,7 +337,6 @@ export class AlertSettingComponent implements OnInit {
let bind = new AlertDefineBind(); let bind = new AlertDefineBind();
bind.alertDefineId = this.currentAlertDefineId; bind.alertDefineId = this.currentAlertDefineId;
bind.monitorId = item.id; bind.monitorId = item.id;
bind.monitorName = item.name;
defineBinds.push(bind); defineBinds.push(bind);
} }
}); });

View File

@@ -103,7 +103,7 @@ export class UserLoginComponent implements OnDestroy {
.post<Message<any>>('/account/auth/form', { .post<Message<any>>('/account/auth/form', {
type: this.type, type: this.type,
identifier: this.userName.value, identifier: this.userName.value,
password: this.password.value credential: this.password.value
}) })
.pipe( .pipe(
finalize(() => { finalize(() => {