|
@@ -18,9 +18,9 @@ level_header_template_map = {
|
|
|
}
|
|
|
|
|
|
level_header_title_content_map = {
|
|
|
- "info": "广告模型自动更新通知",
|
|
|
- "error": "广告模型自动更新告警",
|
|
|
- "warn": "广告模型自动更新告警"
|
|
|
+ "info": "【测试】广告模型自动更新通知",
|
|
|
+ "error": "【测试】广告模型自动更新告警",
|
|
|
+ "warn": "【测试】广告模型自动更新告警"
|
|
|
}
|
|
|
|
|
|
level_task_status_map = {
|
|
@@ -38,8 +38,8 @@ def send_card_msg_to_feishu(webhook, card_json):
|
|
|
"card": card_json
|
|
|
}
|
|
|
print(f"推送飞书消息内容: {json.dumps(payload_message)}")
|
|
|
- response = requests.request('POST', url=webhook, headers=headers, data=json.dumps(payload_message))
|
|
|
- print(response.text)
|
|
|
+ # response = requests.request('POST', url=webhook, headers=headers, data=json.dumps(payload_message))
|
|
|
+ # print(response.text)
|
|
|
|
|
|
|
|
|
def timestamp_format(timestamp: str) -> str:
|
|
@@ -60,53 +60,71 @@ def seconds_convert(seconds):
|
|
|
return f"{hours}小时 {minutes}分钟 {seconds}秒"
|
|
|
|
|
|
|
|
|
-def _monitor(level, msg: str, start, elapsed):
|
|
|
+def _monitor(level, msg: str, start, elapsed, top10):
|
|
|
+ """消息推送"""
|
|
|
"""消息推送"""
|
|
|
now = datetime.now()
|
|
|
- if now.hour > 6:
|
|
|
- msg = msg.replace("\\n", "\n").replace("\\t", "\t")
|
|
|
- mgs_text = f"- 当前时间: {now.strftime('%Y-%m-%d %H:%M:%S')}" \
|
|
|
- f"\n- 任务开始时间: {timestamp_format(start)}" \
|
|
|
- f"\n- 任务状态: {level_task_status_map[level]}" \
|
|
|
- f"\n- 任务耗时: {seconds_convert(elapsed)}" \
|
|
|
- f"\n- 任务描述: {msg}"
|
|
|
- card_json = {
|
|
|
- "config": {},
|
|
|
- "i18n_elements": {
|
|
|
- "zh_cn": [
|
|
|
- {
|
|
|
- "tag": "markdown",
|
|
|
- "content": "",
|
|
|
- "text_align": "left",
|
|
|
- "text_size": "normal"
|
|
|
- },
|
|
|
- {
|
|
|
- "tag": "markdown",
|
|
|
- "content": mgs_text,
|
|
|
- "text_align": "left",
|
|
|
- "text_size": "normal"
|
|
|
- }
|
|
|
- ]
|
|
|
+ if now.hour < 6:
|
|
|
+ print(f"凌晨六点之前不发送通知, 当前时间: {now.strftime('%Y-%m-%d %H:%M:%S')}")
|
|
|
+ return
|
|
|
+
|
|
|
+ msg = msg.replace("\\n", "\n").replace("\\t", "\t")
|
|
|
+ mgs_text = f"- 当前时间: {now.strftime('%Y-%m-%d %H:%M:%S')}" \
|
|
|
+ f"\n- 任务开始时间: {timestamp_format(start)}" \
|
|
|
+ f"\n- 任务状态: {level_task_status_map[level]}" \
|
|
|
+ f"\n- 任务耗时: {seconds_convert(elapsed)}" \
|
|
|
+ f"\n- 任务描述: {msg}"
|
|
|
+ card_json = {
|
|
|
+ "schema": "2.0",
|
|
|
+ "header": {
|
|
|
+ "title": {
|
|
|
+ "tag": "plain_text",
|
|
|
+ "content": level_header_title_content_map[level]
|
|
|
},
|
|
|
- "i18n_header": {
|
|
|
- "zh_cn": {
|
|
|
- "title": {
|
|
|
- "tag": "plain_text",
|
|
|
- "content": level_header_title_content_map[level]
|
|
|
- },
|
|
|
- "subtitle": {
|
|
|
- "tag": "plain_text",
|
|
|
- "content": ""
|
|
|
- },
|
|
|
- "template": level_header_template_map[level]
|
|
|
+ "template": level_header_template_map[level]
|
|
|
+ },
|
|
|
+ "body": {
|
|
|
+ "elements": [
|
|
|
+ {
|
|
|
+ "tag": "markdown",
|
|
|
+ "content": mgs_text,
|
|
|
+ "text_align": "left",
|
|
|
+ "text_size": "normal",
|
|
|
+ "element_id": "overview"
|
|
|
}
|
|
|
- }
|
|
|
+ ]
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ collapsible_panel = {
|
|
|
+ "tag": "collapsible_panel",
|
|
|
+ "header": {
|
|
|
+ "title": {
|
|
|
+ "tag": "markdown",
|
|
|
+ "content": "**Top10差异详情**"
|
|
|
+ },
|
|
|
+ "vertical_align": "center",
|
|
|
+ "padding": "4px 0px 4px 8px"
|
|
|
+ },
|
|
|
+ "border": {
|
|
|
+ "color": "grey",
|
|
|
+ "corner_radius": "5px"
|
|
|
+ },
|
|
|
+ "element_id": "detail",
|
|
|
+ "elements": [
|
|
|
+ {
|
|
|
+ "tag": "markdown",
|
|
|
+ "content": top10,
|
|
|
+ "element_id": "Top10CID"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ card_json['body']['elements'].append(collapsible_panel)
|
|
|
|
|
|
- send_card_msg_to_feishu(
|
|
|
- webhook=server_robot.get('webhook'),
|
|
|
- card_json=card_json
|
|
|
- )
|
|
|
+ send_card_msg_to_feishu(
|
|
|
+ webhook=server_robot.get('webhook'),
|
|
|
+ card_json=card_json
|
|
|
+ )
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
@@ -115,11 +133,13 @@ if __name__ == '__main__':
|
|
|
parser.add_argument('--msg', type=str, help='消息', required=True)
|
|
|
parser.add_argument('--start', type=str, help='任务开始时间', required=True)
|
|
|
parser.add_argument('--elapsed', type=int, help='任务耗时【秒】', required=True)
|
|
|
+ parser.add_argument("--top10", type=str, help='Top10打分详情', required=False)
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
_monitor(
|
|
|
level=args.level,
|
|
|
msg=args.msg,
|
|
|
start=args.start,
|
|
|
- elapsed=args.elapsed
|
|
|
+ elapsed=args.elapsed,
|
|
|
+ top10=args.top10
|
|
|
)
|