[alter,webapp]fix 告警定义关联监控问题
This commit is contained in:
@@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user