feat: 接入自建 Sentry 错误上报

- DSN 指向 rustrak 自建 Sentry(项目 8),release 标记 mqttx@版本
- panic 路径:sentry-panic 链式钩子捕获 + 外层钩子 flush 5s,
  确保 panic=abort 终止进程前事件送出
- 存储层 elog! 持久化错误同步 capture_message 上报
- 传输用 reqwest+rustls,避免 openssl 依赖
This commit is contained in:
2026-09-29 00:30:23 +08:00
parent bc49d1839c
commit 88a8652d7b
4 changed files with 417 additions and 5 deletions
+7 -4
View File
@@ -4,13 +4,16 @@
//!
//! 刻意与官方 Electron MQTTX 的 `MQTTX/` 目录区分,避免互相覆盖数据。
/// 存储层诊断输出到 stderr(避免仅为文件持久化引入日志框架)。
/// 存储层诊断输出到 stderr(避免仅为文件持久化引入日志框架),
/// 并同步上报 Sentry(未初始化时为空操作)。
macro_rules! elog {
($($arg:tt)*) => {
($($arg:tt)*) => {{
let msg = format!($($arg)*);
eprintln!("[store][{}] {}",
chrono::Local::now().format("%H:%M:%S"),
format!($($arg)*))
};
msg);
sentry::capture_message(&msg, sentry::Level::Error);
}};
}
use std::path::{Path, PathBuf};