[alerter] 告警处理指标数据,告警表达式计算,内容模版关键字替换

This commit is contained in:
tomsun28
2021-12-10 12:54:42 +08:00
parent 29b3e23d02
commit 370224f5cf
23 changed files with 693 additions and 44 deletions

View File

@@ -21,7 +21,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import static com.usthe.common.util.CommonConstants.MONITOR_LOGIN_FAILED;
import static com.usthe.common.util.CommonConstants.MONITOR_LOGIN_FAILED_CODE;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
/**
@@ -53,7 +53,7 @@ public class AccountController {
SurenessAccount account = accountProvider.loadAccount(identifier);
if (account == null || account.getPassword() == null) {
Message<Void> message = Message.<Void>builder().msg("账户密码错误")
.code(MONITOR_LOGIN_FAILED).build();
.code(MONITOR_LOGIN_FAILED_CODE).build();
return ResponseEntity.ok(message);
} else {
if (account.getSalt() != null) {
@@ -61,12 +61,12 @@ public class AccountController {
}
if (!account.getPassword().equals(password)) {
Message<Void> message = Message.<Void>builder().msg("账户密码错误")
.code(MONITOR_LOGIN_FAILED).build();
.code(MONITOR_LOGIN_FAILED_CODE).build();
return ResponseEntity.ok(message);
}
if (account.isDisabledAccount() || account.isExcessiveAttempts()) {
Message<Void> message = Message.<Void>builder().msg("账户过期或被锁定")
.code(MONITOR_LOGIN_FAILED).build();
.code(MONITOR_LOGIN_FAILED_CODE).build();
return ResponseEntity.ok(message);
}
}

View File

@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import static com.usthe.common.util.CommonConstants.MONITOR_NOT_EXIST;
import static com.usthe.common.util.CommonConstants.MONITOR_NOT_EXIST_CODE;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
/**
@@ -69,7 +69,7 @@ public class MonitorController {
MonitorDto monitorDto = monitorService.getMonitor(id);
Message.MessageBuilder<MonitorDto> messageBuilder = Message.builder();
if (monitorDto == null) {
messageBuilder.code(MONITOR_NOT_EXIST).msg("Monitor not exist.");
messageBuilder.code(MONITOR_NOT_EXIST_CODE).msg("Monitor not exist.");
} else {
messageBuilder.data(monitorDto);
}

View File

@@ -105,7 +105,7 @@ public class MonitorServiceImpl implements MonitorService {
try {
monitor.setId(monitorId);
monitor.setJobId(jobId);
monitor.setStatus(CommonConstants.AVAILABLE);
monitor.setStatus(CommonConstants.AVAILABLE_CODE);
monitorDao.save(monitor);
paramDao.saveAll(params);
} catch (Exception e) {
@@ -292,8 +292,8 @@ public class MonitorServiceImpl implements MonitorService {
// jobId不删除 待启动纳管之后再次复用jobId
List<Monitor> managedMonitors = monitorDao.findMonitorsByIdIn(ids)
.stream().filter(monitor ->
monitor.getStatus() != CommonConstants.UN_MANAGE && monitor.getJobId() != null)
.peek(monitor -> monitor.setStatus(CommonConstants.UN_MANAGE))
monitor.getStatus() != CommonConstants.UN_MANAGE_CODE && monitor.getJobId() != null)
.peek(monitor -> monitor.setStatus(CommonConstants.UN_MANAGE_CODE))
.collect(Collectors.toList());
if (!managedMonitors.isEmpty()) {
monitorDao.saveAll(managedMonitors);
@@ -308,8 +308,8 @@ public class MonitorServiceImpl implements MonitorService {
// 更新监控状态 新增对应的监控周期性任务
List<Monitor> unManagedMonitors = monitorDao.findMonitorsByIdIn(ids)
.stream().filter(monitor ->
monitor.getStatus() == CommonConstants.UN_MANAGE && monitor.getJobId() != null)
.peek(monitor -> monitor.setStatus(CommonConstants.AVAILABLE))
monitor.getStatus() == CommonConstants.UN_MANAGE_CODE && monitor.getJobId() != null)
.peek(monitor -> monitor.setStatus(CommonConstants.AVAILABLE_CODE))
.collect(Collectors.toList());
if (!unManagedMonitors.isEmpty()) {
monitorDao.saveAll(unManagedMonitors);

View File

@@ -20,9 +20,9 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
import java.lang.reflect.Field;
import static com.usthe.common.util.CommonConstants.DETECT_FAILED;
import static com.usthe.common.util.CommonConstants.MONITOR_CONFLICT;
import static com.usthe.common.util.CommonConstants.PARAM_INVALID;
import static com.usthe.common.util.CommonConstants.DETECT_FAILED_CODE;
import static com.usthe.common.util.CommonConstants.MONITOR_CONFLICT_CODE;
import static com.usthe.common.util.CommonConstants.PARAM_INVALID_CODE;
/**
* controller exception handler
@@ -54,7 +54,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(MonitorDetectException.class)
@ResponseBody
ResponseEntity<Message<Void>> handleMonitorDetectException(MonitorDetectException exception) {
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(DETECT_FAILED).build();
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(DETECT_FAILED_CODE).build();
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(message);
}
@@ -66,7 +66,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(MonitorDatabaseException.class)
@ResponseBody
ResponseEntity<Message<Void>> handleMonitorDatabaseException(MonitorDatabaseException exception) {
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(MONITOR_CONFLICT).build();
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(MONITOR_CONFLICT_CODE).build();
return ResponseEntity.status(HttpStatus.CONFLICT).body(message);
}
@@ -78,7 +78,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(IllegalArgumentException.class)
@ResponseBody
ResponseEntity<Message<Void>> handleIllegalArgumentException(IllegalArgumentException exception) {
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(PARAM_INVALID).build();
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(PARAM_INVALID_CODE).build();
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(message);
}
@@ -91,10 +91,10 @@ public class GlobalExceptionHandler {
@ResponseBody
ResponseEntity<Message<Void>> handleHttpMessageNotReadableException(HttpMessageNotReadableException exception) {
try {
Message<Void> message = Message.<Void>builder().msg((String) detailMessage.get(exception)).code(PARAM_INVALID).build();
Message<Void> message = Message.<Void>builder().msg((String) detailMessage.get(exception)).code(PARAM_INVALID_CODE).build();
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(message);
} catch (Exception e) {
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(PARAM_INVALID).build();
Message<Void> message = Message.<Void>builder().msg(exception.getMessage()).code(PARAM_INVALID_CODE).build();
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(message);
}
}
@@ -129,7 +129,7 @@ public class GlobalExceptionHandler {
if (log.isDebugEnabled()) {
log.debug("[input argument not valid happen]-{}", errorMessage, e);
}
Message<Void> message = Message.<Void>builder().msg(errorMessage.toString()).code(PARAM_INVALID).build();
Message<Void> message = Message.<Void>builder().msg(errorMessage.toString()).code(PARAM_INVALID_CODE).build();
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(message);
}
@@ -146,7 +146,7 @@ public class GlobalExceptionHandler {
errorMessage = exception.getMessage();
}
log.warn("[scheduler warning]-{}", errorMessage);
Message<Void> message = Message.<Void>builder().msg(errorMessage).code(MONITOR_CONFLICT).build();
Message<Void> message = Message.<Void>builder().msg(errorMessage).code(MONITOR_CONFLICT_CODE).build();
return ResponseEntity.status(HttpStatus.CONFLICT).body(message);
}
@@ -163,7 +163,7 @@ public class GlobalExceptionHandler {
errorMessage = exception.getMessage();
}
log.warn("[database error happen]-{}", errorMessage, exception);
Message<Void> message = Message.<Void>builder().msg(errorMessage).code(MONITOR_CONFLICT).build();
Message<Void> message = Message.<Void>builder().msg(errorMessage).code(MONITOR_CONFLICT_CODE).build();
return ResponseEntity.status(HttpStatus.CONFLICT).body(message);
}
@@ -197,7 +197,7 @@ public class GlobalExceptionHandler {
errorMessage = exception.getMessage();
}
log.error("[monitor]-[unknown error happen]-{}", errorMessage, exception);
Message<Void> message = Message.<Void>builder().msg(errorMessage).code(MONITOR_CONFLICT).build();
Message<Void> message = Message.<Void>builder().msg(errorMessage).code(MONITOR_CONFLICT_CODE).build();
return ResponseEntity.status(HttpStatus.CONFLICT).body(message);
}

View File

@@ -80,7 +80,7 @@ CREATE TABLE alert_define
duration int not null comment '触发告警后持续时间,单位s',
enable boolean not null default true comment '告警触发后是否发送',
delay int not null comment '告警延迟时间,即延迟多久再发送告警,单位s',
content varchar(255) not null comment '告警通知内容',
template varchar(255) not null comment '告警通知模板内容',
creator varchar(100) comment '创建者',
modifier varchar(100) comment '最新修改者',
gmt_create timestamp default current_timestamp comment 'create time',
@@ -101,7 +101,7 @@ CREATE TABLE alert_define_monitor_bind
gmt_create timestamp default current_timestamp comment 'create time',
gmt_update datetime default current_timestamp on update current_timestamp comment 'update time',
primary key (id),
unique key unique_bind (alert_define_id, monitor_id)
index index_bind (alert_define_id, monitor_id)
) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4;