fix: add email alerts for all SD module errors
This commit is contained in:
@@ -149,6 +149,7 @@ async def create_ticket_in_sd(requester_email: str, subject: str, description: s
|
|||||||
except (httpx.RequestError, httpx.HTTPStatusError, Exception) as e:
|
except (httpx.RequestError, httpx.HTTPStatusError, Exception) as e:
|
||||||
logger.error(f"❌ [SD Network Error] Не удалось подключиться к ServiceDesk: {e}")
|
logger.error(f"❌ [SD Network Error] Не удалось подключиться к ServiceDesk: {e}")
|
||||||
sd_workflow_logger.error(f"❌ [SD Network Error] {e}")
|
sd_workflow_logger.error(f"❌ [SD Network Error] {e}")
|
||||||
|
_sd_log_and_notify_email("Подключение к ServiceDesk", str(e))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return None
|
return None
|
||||||
@@ -273,6 +274,7 @@ async def _create_ticket_and_attach_files(user_id, msg_text, session, msg, login
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(f"❌ [SD Ticket Error] {user_id}: {e}")
|
logger.exception(f"❌ [SD Ticket Error] {user_id}: {e}")
|
||||||
sd_workflow_logger.error(f"❌ [SD Ticket Error] {user_id}: {e}")
|
sd_workflow_logger.error(f"❌ [SD Ticket Error] {user_id}: {e}")
|
||||||
|
_sd_log_and_notify_email(f"Создание заявки для {user_id}", str(e))
|
||||||
session["step"] = "need_text"
|
session["step"] = "need_text"
|
||||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||||
|
|
||||||
@@ -295,6 +297,7 @@ async def _wait_for_attachments_and_create(user_id, session):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(f"❌ [SD Ticket Failed] user={user_id}: {e}")
|
logger.exception(f"❌ [SD Ticket Failed] user={user_id}: {e}")
|
||||||
sd_workflow_logger.error(f"❌ [SD Ticket] {e}")
|
sd_workflow_logger.error(f"❌ [SD Ticket] {e}")
|
||||||
|
_sd_log_and_notify_email(f"Создание заявки для {user_id}", str(e))
|
||||||
session["step"] = "need_text"
|
session["step"] = "need_text"
|
||||||
try:
|
try:
|
||||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||||
@@ -310,6 +313,7 @@ def _on_sd_timer_done(task: asyncio.Task, user_id: str):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"❌ Ошибка в таске таймера SD для {user_id}: {e}")
|
logger.error(f"❌ Ошибка в таске таймера SD для {user_id}: {e}")
|
||||||
sd_workflow_logger.error(f"❌ [SD Timer Error] {user_id}: {e}")
|
sd_workflow_logger.error(f"❌ [SD Timer Error] {user_id}: {e}")
|
||||||
|
_sd_log_and_notify_email(f"Таймер создания заявки для {user_id}", str(e))
|
||||||
|
|
||||||
@router.message()
|
@router.message()
|
||||||
async def sd_module_handler(msg: Message):
|
async def sd_module_handler(msg: Message):
|
||||||
@@ -415,14 +419,18 @@ async def sd_module_handler(msg: Message):
|
|||||||
log_menu_stats(user_id, "Service Desk", f"Добавление файла к заявке #{ticket_id}")
|
log_menu_stats(user_id, "Service Desk", f"Добавление файла к заявке #{ticket_id}")
|
||||||
await msg.answer(sd_file_attached(), parse_mode="html")
|
await msg.answer(sd_file_attached(), parse_mode="html")
|
||||||
else:
|
else:
|
||||||
|
_sd_log_and_notify_email(f"Загрузка файла к заявке #{ticket_id}", f"file={att.get('file_name', 'unknown')}")
|
||||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||||
elif msg_text.strip():
|
elif msg_text.strip():
|
||||||
await msg.answer(UNKNOWN_MAIN_CMD_TEXT, parse_mode="html")
|
await msg.answer(UNKNOWN_MAIN_CMD_TEXT, parse_mode="html")
|
||||||
return
|
return
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(f"❌ [SD Fatal Error] user={getattr(msg.from_user, 'id', 'unknown')}: {e}")
|
user_id = getattr(msg.from_user, 'id', 'unknown')
|
||||||
|
logger.exception(f"❌ [SD Fatal Error] user={user_id}: {e}")
|
||||||
sd_workflow_logger.error(f"❌ [SD Fatal] {e}")
|
sd_workflow_logger.error(f"❌ [SD Fatal] {e}")
|
||||||
|
_sd_log_and_notify_email(f"Обработка сообщения от {user_id}", str(e))
|
||||||
try:
|
try:
|
||||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user