提交 78373ef3 authored 作者: zw.wang's avatar zw.wang

feat: [merger] 事件预录5s

上级 8f6ab9e5
...@@ -40,6 +40,7 @@ class PreEvent(object): ...@@ -40,6 +40,7 @@ class PreEvent(object):
pre_events = [] pre_events = []
pre_status = -1 pre_status = -1
# 告警消息转换成事件
for alarm_point in alarm_list: for alarm_point in alarm_list:
# 报警时间转换成上海时区 # 报警时间转换成上海时区
alarm_time = dt_parse(alarm_point['time']).astimezone(tz) alarm_time = dt_parse(alarm_point['time']).astimezone(tz)
...@@ -48,7 +49,8 @@ class PreEvent(object): ...@@ -48,7 +49,8 @@ class PreEvent(object):
if pre_status == 1: if pre_status == 1:
pre_events[-1]['end_time'] = alarm_time pre_events[-1]['end_time'] = alarm_time
else: else:
pre_events.append({'start_time': alarm_time}) # 预录5s
pre_events.append({'start_time': alarm_time - timedelta(seconds=5)})
else: else:
if pre_status == 1: if pre_status == 1:
pre_events[-1]['end_time'] = alarm_time + timedelta(seconds=10) pre_events[-1]['end_time'] = alarm_time + timedelta(seconds=10)
...@@ -68,9 +70,9 @@ class PreEvent(object): ...@@ -68,9 +70,9 @@ class PreEvent(object):
if pre_status == 1: if pre_status == 1:
pre_events[-1]['end_time'] = self.tz_end_time pre_events[-1]['end_time'] = self.tz_end_time
# 合并时间间隔较短的事件或切分时间过长的事件
events = [] events = []
for pre_event in pre_events: for pre_event in pre_events:
# 合并时间间隔较短的事件
if len(events) > 0 \ if len(events) > 0 \
and pre_event['start_time'] - events[-1]['end_time'] <= timedelta(seconds=30) \ and pre_event['start_time'] - events[-1]['end_time'] <= timedelta(seconds=30) \
and events[-1]['end_time'] - events[-1]['start_time'] <= timedelta(hours=0.5): and events[-1]['end_time'] - events[-1]['start_time'] <= timedelta(hours=0.5):
...@@ -81,18 +83,6 @@ class PreEvent(object): ...@@ -81,18 +83,6 @@ class PreEvent(object):
'end_time': pre_event['end_time'], 'end_time': pre_event['end_time'],
}) })
# 合并告警消息最小单位60s
# if len(events) > 0 \
# and alarm_time - events[-1]['end_time'] < timedelta(seconds=40) \
# and events[-1]['end_time'] - events[-1]['start_time'] < timedelta(hours=0.5):
# events[-1]['end_time'] = alarm_time + timedelta(seconds=10)
# continue
# events.append({
# 'start_time': alarm_time - timedelta(seconds=10),
# 'end_time': alarm_time + timedelta(seconds=10)
# })
return events return events
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论