- if alarm.operation.upper() == 'GT':
- if metric_value > alarm.threshold:
- self.queue.put((alarm, AlarmStatus.ALARM))
- else:
- self.queue.put((alarm, AlarmStatus.OK))
- elif alarm.operation.upper() == 'LT':
- if metric_value < alarm.threshold:
- self.queue.put((alarm, AlarmStatus.ALARM))
- else:
- self.queue.put((alarm, AlarmStatus.OK))
+ for metric in metric_data:
+ metric_value = metric["value"]
+ metric_labels = metric["labels"]
+ alarm.extra_labels.update(metric_labels)
+ if alarm.alarm_status.upper() != AlarmStatus.DISABLED.value.upper():
+ if (
+ (
+ alarm.operation.upper() == "GT"
+ and metric_value > alarm.threshold
+ )
+ or (
+ alarm.operation.upper() == "LT"
+ and metric_value < alarm.threshold
+ )
+ or (
+ alarm.operation.upper() == "GE"
+ and metric_value >= alarm.threshold
+ )
+ or (
+ alarm.operation.upper() == "LE"
+ and metric_value <= alarm.threshold
+ )
+ or (
+ alarm.operation.upper() == "EQ"
+ and metric_value == alarm.threshold
+ )
+ or (
+ alarm.operation.upper() == "NE"
+ and metric_value != alarm.threshold
+ )
+ ):
+ self.queue.put((alarm, AlarmStatus.ALARM))
+ elif alarm.operation.upper() in (
+ "GT",
+ "LT",
+ "GE",
+ "LE",
+ "EQ",
+ "NE",
+ ):
+ self.queue.put((alarm, AlarmStatus.OK))
+
+ def update_alarm_status(self, alarm_state, uuid):
+ alarm_data = self.common_db.get_alarm_by_uuid(uuid)
+ if alarm_data.get("alarm_status").upper() != AlarmStatus.DISABLED.value.upper():
+ self.common_db.update_alarm_status(alarm_state, uuid)
+ return
+
+ def update_alarm_extra_labels(self, alarm_labels, uuid):
+ self.common_db.update_alarm_extra_labels(alarm_labels, uuid)
+ return