Commit b8c73b90 authored by gaozhentao's avatar gaozhentao

修复告警逻辑判断BUG

parent 36c08bdf
......@@ -19,7 +19,7 @@ public class AlarmLog {
@PrimaryKey
private String state;
/* 告警序列号 */
private String serialnum;
private long serialnum;
/* 告警时间 */
private String alatime;
......@@ -37,12 +37,11 @@ public class AlarmLog {
/* 恢复时间 */
private String rectime;
public String getSerialnum() {
public long getSerialnum() {
return serialnum;
}
public void setSerialnum(String serialnum) {
public void setSerialnum(long serialnum) {
this.serialnum = serialnum;
}
......
......@@ -20,7 +20,7 @@ public class AlarmMsg {
@PrimaryKey
private String state;
/* 告警序列号 */
private String serialnum;
private long serialnum;
/* 告警时间 */
private String alatime;
......@@ -36,12 +36,11 @@ public class AlarmMsg {
@Column("cluster_name")
private String clusterName;
public String getSerialnum() {
public long getSerialnum() {
return serialnum;
}
public void setSerialnum(String serialnum) {
public void setSerialnum(long serialnum) {
this.serialnum = serialnum;
}
......
......@@ -95,12 +95,6 @@ public class AlarmTask {
}
int correctCount1Min = 60 / 10 - 1;
String uuid = UUID.randomUUID().toString();
AlarmLog alarmLog = new AlarmLog();
alarmLog.setClusterName(hostInfo.getCluster_name());
alarmLog.setIp(hostInfo.getHost_ip());
alarmLog.setPort(String.valueOf(hostInfo.getHost_port()));
AlarmMsg alarmMsg = new AlarmMsg();
alarmMsg.setClusterName(hostInfo.getCluster_name());
alarmMsg.setIp(hostInfo.getHost_ip());
......@@ -126,18 +120,19 @@ public class AlarmTask {
msg ="系统宕机"+ " " + hostInfo.getCluster_name() + " " + hostInfo.getHost_name()
+ " " + hostInfo.getHost_ip() + " 连续1分钟服务调用失败";
alarmLog.setAlarmMessage(msg);
alarmMsg.setAlarmMessage(msg);
flag = false;
}
if(flag){
if(alarmCheck != null){
/* 如果存在告警 则恢复 */
cassandraDao.insertAlarmLog(alarmMsg,TimeUtil.getDate());
cassandraDao.insertAlarmLog(alarmCheck,TimeUtil.getDate());
cassandraDao.delAlarmMsg(alarmCheck);
String recoveryMsg = alarmCheck.getClusterName() + " " + alarmCheck.getIp()
+ ":" + alarmCheck.getPort() + ",告警已恢复";
monitorConfig.setAlarmMsg("【告警恢复】"+recoveryMsg);
if(TokenInterceptor.currSwitch){
MonitorUtil.wxAlarm(monitorConfig);
}
......@@ -145,22 +140,24 @@ public class AlarmTask {
}else{
if(alarmCheck == null){
/* 如果不存在告警 新增数据 */
cassandraDao.insertAlarmMsg(alarmMsg);
monitorConfig.setAlarmMsg(alarmLog.getAlarmMessage());
monitorConfig.setAlarmMsg(alarmMsg.getAlarmMessage());
if(TokenInterceptor.currSwitch){
MonitorUtil.wxAlarm(monitorConfig);
}
}else {
/* 如果告警发生变化 回复时间变成告警时间 */
if(!alarmCheck.getAlarmLevel().equals(alarmLog.getAlarmLevel())) {
if(!alarmCheck.getAlarmLevel().equals(alarmMsg.getAlarmLevel())) {
/* 之前告警取消,重新发送新的告警 */
cassandraDao.insertAlarmLog(alarmCheck,"-------");
cassandraDao.delAlarmMsg(alarmCheck);
cassandraDao.insertAlarmMsg(alarmMsg);
/* 记录本次告警 */
alarmLog.setAlarmLevel(Constant.ALARM_OK);
alarmLog.setState(Constant.ALARM_RECOVERY);
monitorConfig.setAlarmMsg("【告警内容更新】"+alarmLog.getAlarmMessage());
alarmMsg.setAlarmLevel(Constant.ALARM_OK);
alarmMsg.setState(Constant.ALARM_RECOVERY);
monitorConfig.setAlarmMsg("【告警内容更新】"+alarmMsg.getAlarmMessage());
if(TokenInterceptor.currSwitch){
MonitorUtil.wxAlarm(monitorConfig);
}
......
......@@ -101,7 +101,7 @@ public class Manager {
int pageSize = jsonObject.getInt("pageSize");
int i = 0;
String flag = String.valueOf(System.currentTimeMillis());
long flag = System.currentTimeMillis();
Map total = cassandraDao.getAlarmLogSize();
List<AlarmLog> logList = null;
do{
......@@ -627,7 +627,7 @@ public class Manager {
int pageSize = jsonObject.getInt("pageSize");
List<AlarmLog> logList = cassandraDao.getAlarmLogList();
String flag = String.valueOf(System.currentTimeMillis());
long flag = System.currentTimeMillis();
if(jsonObject.containsKey("start")&&jsonObject.containsKey("ip")){
String ip = jsonObject.getString("ip");
String start = jsonObject.getString("start");
......
......@@ -54,8 +54,8 @@ public class CassandraDaoImpl {
// return template.select("select * from ctid_prof.ctid_process_perf_base_line_value;", CTID_Process_Perf_BaseLineValue.class);
// }
public List<AlarmLog> getAlarmLog(int size,String flag) {
String cql="select * from ctid_prof.alarm_log where state = '"+Constant.ALARM_RECOVERY+"' and serialnum<'"+flag+"' order by alatime desc limit "+size+ " allow filtering;";
public List<AlarmLog> getAlarmLog(int size,long flag) {
String cql="select * from ctid_prof.alarm_log where state = '"+Constant.ALARM_RECOVERY+"' and serialnum<"+flag+" order by alatime desc limit "+size+ " allow filtering;";
return template.select(cql, AlarmLog.class);
}
......@@ -75,18 +75,17 @@ public class CassandraDaoImpl {
/*变更告警信息(已启用)*/
/* public boolean updateAlarm(String serialnum,String time) {
String cql="update ctid_prof.alarm_log set rectime = '"+time+"' , state = '" +Constant.ALARM_RECOVERY +"', alarm_level = '"+Constant.ALARM_OK+"' where serialnum = '"+serialnum +"'";
System.out.println("cql:"+cql);
return template.getCqlOperations().execute(cql);
}*/
public void insertAlarmLog(AlarmMsg alarmMsg,String time) {
String cql ="INSERT INTO ctid_prof.alarm_log (serialnum, alarm_level, alarm_message, alatime, cluster_name, ip, port, rectime, state)" +
"VALUES('"+System.currentTimeMillis()+"', '"+Constant.ALARM_OK+"', '"+alarmMsg.getAlarmMessage()+"', '"+TimeUtil.getDate()+"', '"+alarmMsg.getClusterName()+"', '"+alarmMsg.getIp()+"', '"+alarmMsg.getPort()+"', '"+time+"', '"+Constant.ALARM_RECOVERY+"');";
"VALUES("+alarmMsg.getSerialnum()+", '"+Constant.ALARM_OK+"', '"+alarmMsg.getAlarmMessage()+"', '"+TimeUtil.getDate()+"', '"+alarmMsg.getClusterName()+"', '"+alarmMsg.getIp()+"', '"+alarmMsg.getPort()+"', '"+time+"', '"+Constant.ALARM_RECOVERY+"');";
template.getCqlOperations().execute(cql);
}
public void insertAlarmMsg(AlarmMsg alarmMsg) {
String cql ="INSERT INTO ctid_prof.alarm_msg (serialnum, alarm_level, alarm_message, alatime, cluster_name, ip, port, state)" +
"VALUES('"+System.currentTimeMillis()+"', '"+alarmMsg.getAlarmLevel()+"', '"+alarmMsg.getAlarmMessage()+"', '"+ TimeUtil.getDate()+"', '"+alarmMsg.getClusterName()+"', '"+alarmMsg.getIp()+"', '"+alarmMsg.getPort()+"', '"+Constant.ALARM_ING+"');";
"VALUES("+System.currentTimeMillis()+", '"+alarmMsg.getAlarmLevel()+"', '"+alarmMsg.getAlarmMessage()+"', '"+ TimeUtil.getDate()+"', '"+alarmMsg.getClusterName()+"', '"+alarmMsg.getIp()+"', '"+alarmMsg.getPort()+"', '"+Constant.ALARM_ING+"');";
template.getCqlOperations().execute(cql);
}
public Map getAlarmLogSize() {
......@@ -94,6 +93,11 @@ public class CassandraDaoImpl {
return template.selectOne(cql,Map.class);
}
public void delAlarmMsg(AlarmMsg alarmMsg) {
String cql ="DELETE FROM ctid_prof.alarm_msg WHERE state='"+alarmMsg.getState()+"' AND alatime='"+alarmMsg.getAlatime()+"' AND serialnum="+alarmMsg.getSerialnum()+" ;";
template.getCqlOperations().execute(cql);
}
public Admin findByUsername(String username) {
String cql = "SELECT * FROM ctid_prof.admin where username = '"+username+"';";
return template.selectOne(cql,Admin.class);
......@@ -125,18 +129,18 @@ public class CassandraDaoImpl {
return template.selectOne(cql,Map.class);
}
public List<AlarmLog> getAlarmLogList(String start, String end,int size,String flag) {
String cql="select * from ctid_prof.alarm_log where alatime > '"+start+"' and alatime < '"+end+"'and state = '" +Constant.ALARM_RECOVERY+"' and serialnum<'"+flag+"' order by alatime desc limit "+size+ " allow filtering";
public List<AlarmLog> getAlarmLogList(String start, String end,int size,long flag) {
String cql="select * from ctid_prof.alarm_log where alatime > '"+start+"' and alatime < '"+end+"'and state = '" +Constant.ALARM_RECOVERY+"' and serialnum<"+flag+" order by alatime desc limit "+size+ " allow filtering";
return template.select(cql, AlarmLog.class);
}
public List<AlarmLog> getAlarmLogList(String ip,int size,String flag) {
String cql="select * from ctid_prof.alarm_log where ip like '%"+ip+"%' and state = '" +Constant.ALARM_RECOVERY+"' and serialnum<'"+flag+"' order by alatime desc limit "+size+ " allow filtering";
public List<AlarmLog> getAlarmLogList(String ip,int size,long flag) {
String cql="select * from ctid_prof.alarm_log where ip like '%"+ip+"%' and state = '" +Constant.ALARM_RECOVERY+"' and serialnum<"+flag+" order by alatime desc limit "+size+ " allow filtering";
return template.select(cql, AlarmLog.class);
}
public List<AlarmLog> getAlarmLogList(String ip, String start, String end,int size,String flag) {
String cql="select * from ctid_prof.alarm_log where ip like '%"+ip+"%' and alatime>'"+start+"' and alatime <'"+end+"' and state = '" +Constant.ALARM_RECOVERY+"' and serialnum<'"+flag+"' limit "+size+ " allow filtering";
public List<AlarmLog> getAlarmLogList(String ip, String start, String end,int size,long flag) {
String cql="select * from ctid_prof.alarm_log where ip like '%"+ip+"%' and alatime>'"+start+"' and alatime <'"+end+"' and state = '" +Constant.ALARM_RECOVERY+"' and serialnum<"+flag+" limit "+size+ " allow filtering";
return template.select(cql, AlarmLog.class);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment