|
@@ -46,6 +46,95 @@ region_code = {
|
|
|
}
|
|
|
|
|
|
|
|
|
+def rov_data_monitor(now_date, now_h):
|
|
|
+ """rov模型预测列表"""
|
|
|
+ if now_h > 6:
|
|
|
+ rov_key_name = f"{config_.RECALL_KEY_NAME_PREFIX}{now_date}"
|
|
|
+ if not redis_helper.key_exists(key_name=rov_key_name):
|
|
|
+ msg_text = f"\n- 所属项目: rov-server/rov-offline" \
|
|
|
+ f"\n- 告警名称: 离线更新数据未按时更新告警" \
|
|
|
+ f"\n- 所属环境: {config_.ENV_TEXT}" \
|
|
|
+ f"\n- now_date: {now_date}" \
|
|
|
+ f"\n- now_h: {now_h}" \
|
|
|
+ f"\n- 告警描述: rov模型预测列表数据未按时更新"
|
|
|
+ log_.info(f"msg_text = {msg_text}")
|
|
|
+ send_msg_to_feishu(
|
|
|
+ webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
|
|
|
+ key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
|
|
|
+ msg_text=msg_text
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+def region_data_monitor(now_date, now_h):
|
|
|
+ """地域分组数据"""
|
|
|
+ # 地域分组小时级列表
|
|
|
+ rule_params = config_.RULE_PARAMS_REGION
|
|
|
+ key_prefix_dict = {
|
|
|
+ '地域分组小时级数据': config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H,
|
|
|
+ '地域分组相对24h去重后数据': config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_24H_H,
|
|
|
+ '不区分地域相对24h去重后数据': config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H,
|
|
|
+ 'rov模型预测列表去重后数据': config_.RECALL_KEY_NAME_PREFIX_DUP_REGION_H,
|
|
|
+ }
|
|
|
+ region_code_list = [code for region, code in region_code.items()]
|
|
|
+ for rule_key, _ in rule_params.items():
|
|
|
+ for key_con, key_prefix in key_prefix_dict.items():
|
|
|
+ no_update_region_list = []
|
|
|
+ for region in region_code_list:
|
|
|
+ region_key_name = f"{key_prefix}{region}.{rule_key}.{now_date}.{now_h}"
|
|
|
+ if not redis_helper.key_exists(key_name=region_key_name):
|
|
|
+ no_update_region_list.append(region)
|
|
|
+ if len(no_update_region_list) == len(region_code_list):
|
|
|
+ msg_text = f"\n- 所属项目: rov-server/rov-offline" \
|
|
|
+ f"\n- 告警名称: 离线更新数据未按时更新告警" \
|
|
|
+ f"\n- 所属环境: {config_.ENV_TEXT}" \
|
|
|
+ f"\n- now_date: {now_date}" \
|
|
|
+ f"\n- now_h: {now_h}" \
|
|
|
+ f"\n- 告警描述: {key_con}未按时更新, rule_key={rule_key}"
|
|
|
+ log_.info(f"msg_text = {msg_text}")
|
|
|
+ send_msg_to_feishu(
|
|
|
+ webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
|
|
|
+ key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
|
|
|
+ msg_text=msg_text
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+def special_videos_monitor(now_date, now_h):
|
|
|
+ """特殊mid(屏蔽名单)指定视频列表"""
|
|
|
+ if now_h > 4:
|
|
|
+ rov_key_name = f"{config_.KEY_NAME_PREFIX_SPECIAL_VIDEOS}{now_date}"
|
|
|
+ if not redis_helper.key_exists(key_name=rov_key_name):
|
|
|
+ msg_text = f"\n- 所属项目: rov-server/rov-offline" \
|
|
|
+ f"\n- 告警名称: 离线更新数据未按时更新告警" \
|
|
|
+ f"\n- 所属环境: {config_.ENV_TEXT}" \
|
|
|
+ f"\n- now_date: {now_date}" \
|
|
|
+ f"\n- now_h: {now_h}" \
|
|
|
+ f"\n- 告警描述: 特殊mid(屏蔽名单)指定视频列表数据未按时更新"
|
|
|
+ log_.info(f"msg_text = {msg_text}")
|
|
|
+ send_msg_to_feishu(
|
|
|
+ webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
|
|
|
+ key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
|
|
|
+ msg_text=msg_text
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+def whole_movies_monitor(now_date, now_h):
|
|
|
+ """完整影视资源列表"""
|
|
|
+ rov_key_name = f"{config_.RECALL_KEY_NAME_PREFIX_WHOLE_MOVIES}{now_date}.{now_h}"
|
|
|
+ if not redis_helper.key_exists(key_name=rov_key_name):
|
|
|
+ msg_text = f"\n- 所属项目: rov-server/rov-offline" \
|
|
|
+ f"\n- 告警名称: 离线更新数据未按时更新告警" \
|
|
|
+ f"\n- 所属环境: {config_.ENV_TEXT}" \
|
|
|
+ f"\n- now_date: {now_date}" \
|
|
|
+ f"\n- now_h: {now_h}" \
|
|
|
+ f"\n- 告警描述: 完整影视资源列表数据未按时更新"
|
|
|
+ log_.info(f"msg_text = {msg_text}")
|
|
|
+ send_msg_to_feishu(
|
|
|
+ webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
|
|
|
+ key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
|
|
|
+ msg_text=msg_text
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
def get_redis_data_keys(now_date, now_h):
|
|
|
# 检查所需列表是否已更新好
|
|
|
redis_data_keys = []
|
|
@@ -75,18 +164,10 @@ def get_redis_data_keys(now_date, now_h):
|
|
|
|
|
|
|
|
|
def monitor(now_date, now_h):
|
|
|
- redis_data_keys = get_redis_data_keys(now_date=now_date, now_h=now_h)
|
|
|
- log_.info(f"redis_data_keys = {redis_data_keys}")
|
|
|
- for key_name in redis_data_keys:
|
|
|
- if not redis_helper.key_exists(key_name=key_name):
|
|
|
- msg_text = f"{config_.ENV_TEXT} —— now_date = {now_date}, now_h = {now_h}, key = {key_name}, " \
|
|
|
- f"数据未按时更新,请及时查看解决。"
|
|
|
- log_.info(f"msg_text = {msg_text}")
|
|
|
- send_msg_to_feishu(
|
|
|
- webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
|
|
|
- key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
|
|
|
- msg_text=msg_text
|
|
|
- )
|
|
|
+ rov_data_monitor(now_date=now_date, now_h=now_h)
|
|
|
+ region_data_monitor(now_date=now_date, now_h=now_h)
|
|
|
+ special_videos_monitor(now_date=now_date, now_h=now_h)
|
|
|
+ whole_movies_monitor(now_date=now_date, now_h=now_h)
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|