Browse Source

update 更新恢复 避免不通告警等级可能的影响

dev
lucas 1 week ago
parent
commit
ed1f16fa9c
  1. 24
      consumers/consumerAxySkAlarm.go

24
consumers/consumerAxySkAlarm.go

@ -60,7 +60,6 @@ func (the *consumerAxySkAlarm) Initial(cfg string) error {
if err != nil {
return err
}
the.historyStationAlarmMap = make(map[string]AXY_SK.HistoryAlarm)
err = the.monitorInitial()
return err
}
@ -208,7 +207,8 @@ func (the *consumerAxySkAlarm) judgeSK() string {
trigger.StructId, trigger.FactorId, level)
onceTriggerStationAlarmMap[sid] = conditionStr
//判断历史有没有
if hv, ok := the.historyStationAlarmMap[sid]; ok {
hisK := fmt.Sprintf("%s_%s", sid, fmt.Sprintf("3077000%d", level))
if hv, ok := the.historyStationAlarmMap[hisK]; ok {
if hv.AlarmLevel < level { //低等级告警过滤
log.Printf("测点[%s]本次触发 level=[%d] > 历史有效等级%d,不再重复触发", sid, level, hv.AlarmLevel)
continue
@ -225,8 +225,8 @@ func (the *consumerAxySkAlarm) judgeSK() string {
}
}
//纪录历史告警
log.Printf("trigger.Id=%d, 测点[%s]本次触发双控,时刻[%s]level=%d", trigger.Id, sid, alarmTime.Format("2006-01-02 15:04:05"), level)
the.historyStationAlarmMap[sid] = AXY_SK.HistoryAlarm{
log.Printf("trigger.Id=%d, 测点[%s]本次触发双控,%s,时刻[%s]level=%d", trigger.Id, sid, hisK, alarmTime.Format("2006-01-02 15:04:05"), level)
the.historyStationAlarmMap[hisK] = AXY_SK.HistoryAlarm{
SourceId: sid,
AlarmLevel: level,
Time: alarmTime,
@ -235,17 +235,16 @@ func (the *consumerAxySkAlarm) judgeSK() string {
payload := the.skAlarmInfo(alarmInfoTemplate, level, detail, alarmTime, triggerTypeCodes)
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload)
} else {
hisK := fmt.Sprintf("%s_%s", sid, fmt.Sprintf("3077000%d", trigger.AlarmLevel))
if level == 0 {
if v, ok := the.historyStationAlarmMap[sid]; ok {
level = v.AlarmLevel
}
level = trigger.AlarmLevel
}
if _, ok := the.historyStationAlarmMap[sid]; ok {
log.Printf("trigger.Id=%d, 测点[%s]本次 恢复双控,时刻[%s]level=%d", trigger.Id, sid, alarmTime.Format("2006-01-02 15:04:05"), level)
if v, ok := the.historyStationAlarmMap[hisK]; ok {
log.Printf("trigger.Id=%d, 测点[%s]本次 恢复双控%s,时刻[%s]level=%d", trigger.Id, sid, hisK, v.Time.Format("2006-01-02 15:04:05"), level)
payload := the.skAlarmElimination(alarmInfoTemplate, level, detail)
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload)
delete(the.historyStationAlarmMap, sid)
delete(the.historyStationAlarmMap, hisK)
}
}
}
@ -386,12 +385,13 @@ func (the *consumerAxySkAlarm) updateEsAlarmTriggerHistory(structId int) {
}
the.historyStationAlarmMap = make(map[string]AXY_SK.HistoryAlarm)
for _, alarm := range alarms {
the.historyStationAlarmMap[alarm.SourceId] = AXY_SK.HistoryAlarm{
hisK := fmt.Sprintf("%s_%s", alarm.SourceId, alarm.AlarmCode)
the.historyStationAlarmMap[hisK] = AXY_SK.HistoryAlarm{
SourceId: alarm.SourceId,
Time: alarm.EndTime,
AlarmLevel: alarm.CurrentLevel,
}
log.Printf("加载双控历史告警 SourceId=%s,time=%v", alarm.SourceId, alarm.EndTime)
log.Printf("加载双控历史告警 hisK=%s,time=%v", hisK, alarm.EndTime)
}
log.Printf("双控历史告警 共 %d条", len(the.historyStationAlarmMap))
}

Loading…
Cancel
Save