Skip to content

feat(telemetry): 使用 Sentry 收集并上报遥测数据#2593

Open
Big-Cake-jpg wants to merge 35 commits intodevfrom
feat/sentry-telemetry
Open

feat(telemetry): 使用 Sentry 收集并上报遥测数据#2593
Big-Cake-jpg wants to merge 35 commits intodevfrom
feat/sentry-telemetry

Conversation

@Big-Cake-jpg
Copy link
Member

@Big-Cake-jpg Big-Cake-jpg commented Mar 12, 2026

本 PR 对遥测服务与日志服务进行了改动,使用 Sentry 收集启动器上报的环境信息与错误。

在启用遥测后,Sentry 将会自动收集程序启动后出现的错误与环境信息,并将其上报至服务器。程序自行收集的环境信息也会被一并包含在收集到的错误内上报。

需要添加一个新的环境变量:SENTRY_DSN 用于配置 Sentry SDK 使用的后端。在不配置 SENTRY_DSN 或未勾选 启用遥测数据收集 设置项的情况下,遥测服务不会上报任何数据。

遥测服务现在具有一个新的方法:ReportException(ex),用于在需要的地方进行调用以上报启动器错误供开发者调查、复现与修复。

参见:

Note

这个 PR 和目前所使用的 Sentry 实例配置可能还不是很完善,如果有任何建议欢迎提出,也欢迎直接向 feat/sentry-telemetry 分支提交你的更改。

Sentry 实例的访问权限请各位开发联系 @Big-Cake-jpg 提供邮箱获取注册邮件。

@pcl-ce-automation pcl-ce-automation bot added 🛠️ 等待审查 Pull Request 已完善,等待维护者或负责人进行代码审查 size: M PR 大小评估:中型 labels Mar 12, 2026
@Big-Cake-jpg Big-Cake-jpg requested a review from a team March 12, 2026 10:04
@pcl-ce-automation pcl-ce-automation bot added size: L PR 大小评估:大型 and removed size: M PR 大小评估:中型 labels Mar 12, 2026
@Big-Cake-jpg Big-Cake-jpg requested a review from lhx077 March 12, 2026 11:19
Copy link
Member

@LinQingYuu LinQingYuu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

也许可以考虑有选择性的上报

像一些 IOException 还有 HTTP 请求超时其实没有上报的必要,报这个纯粹在浪费钱

实际上 Sentry 上是分了 Debug 和 Release 环境的,它也支持记录 Debug 等级的日志
@Big-Cake-jpg
Copy link
Member Author

现在我们需要一个明确的、不应该上报的异常类型列表,例如 TimeoutException。Sentry 可以利用它在上报异常前过滤掉这些异常。

当然如果要做按关键词过滤也不是不行但是我觉得势必会比较屎 orz

@Big-Cake-jpg Big-Cake-jpg force-pushed the feat/sentry-telemetry branch from b545c25 to fe7aa62 Compare March 14, 2026 02:57
@Big-Cake-jpg Big-Cake-jpg requested a review from ruattd March 14, 2026 02:59
lhx077
lhx077 previously requested changes Mar 14, 2026
options.AutoSessionTracking = true;
options.Release = release;
options.Environment = environment;
options.SetBeforeSend(@event =>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@event.Exception 可能为 null(message/event 类型、或异常在 @event.Exceptions 列表里),这段逻辑可能根本过滤不到你想过滤的 timeout。
仅通过 Level == Debug 丢弃也未必等同于你想要的策略:你在 ReportException 里会把 Info/Warning 也送过去;但 LogService 现在对“任何带 Exception 的日志”都会调用上报,因此 Sentry 可能被 Warning/Info 异常大量污染。

@LinQingYuu LinQingYuu dismissed lhx077’s stale review March 14, 2026 17:44

It seems like an invalid review.

@lhx077
Copy link
Contributor

lhx077 commented Mar 15, 2026

对了,我觉得我有必要再解释一下昨天那个回复:
@event.Exception 极可能是 null

我就说这么多

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size: L PR 大小评估:大型 🛠️ 等待审查 Pull Request 已完善,等待维护者或负责人进行代码审查

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants