Sentry SDK通常异步发送事件。应用调用捕获异常后没有报错,只说明事件进入了SDK处理流程,并不代表数据已经离开进程。事件可能被采样、过滤、限流、排队,或在退出前来不及Flush。使用Relay时,链路又分成应用到Relay、Relay到Sentry两跳。
Sentry常见上报路径
| 方式 | 数据路径 | 代理重点 |
|---|---|---|
| SDK直发 | 应用到Sentry Ingest | 应用进程代理、DSN、TLS与队列 |
| 经Relay | 应用到Relay,再到Sentry | 内网直连、Relay出口与上游身份 |
| 自托管Sentry | 应用到内部入口 | 内部DNS、反向代理、CA与容量 |
DSN配置错误会出现什么
DSN包含协议、项目入口与公共标识。主机、项目ID或协议错误可能导致404、认证拒绝或TLS异常。不同环境应使用明确项目或环境标签,避免测试事件污染生产告警。DSN不等同于管理Token,但仍应防止被无控制滥用。
Envelope为什么与普通JSON不同
Sentry SDK使用Envelope封装事件、附件、Session和其他Item。代理或网关若限制请求体大小、压缩或内容类型,可能让小异常成功、带附件事件失败。应查看实际HTTP状态、丢弃原因和请求体限制,不要只测试入口首页。
代理设置由谁读取
不同语言SDK使用各自HTTP客户端。有的支持环境变量,有的需Transport或专用选项。Relay则是独立服务。应记录SDK、运行时和Relay版本,并用受控测试事件确认代理日志,而不是从另一语言的配置推断。
采样与网络丢失如何区分
错误事件、Transaction、Profile和Session可能使用不同采样规则。未采样数据本来就不会发送;代理故障则应出现发送错误、队列积压或丢弃统计。先确认采样决策,再查网络,避免提高采样率制造更多失败流量。
状态码怎样解释
- 407:正向代理认证;
- 401/403:DSN、项目或Relay上游身份;
- 413:事件或附件超过入口限制;
- 429:项目限流或配额;
- 502/504:代理或上游超时;
- x509错误:应用或Relay缺少正确CA。
短生命周期任务为何容易丢事件
CLI、Serverless函数和批处理任务可能在后台发送完成前退出。应使用SDK支持的Flush或Close,并设置合理截止时间,但不能无限阻塞任务。代理延迟升高时,队列更容易来不及发送。
Relay缓冲能保证不丢吗
Relay可以集中处理、过滤或转发,但缓冲与重试能力受部署和配置限制。长期上游故障仍可能耗尽资源。应监控接收、转发、丢弃、上游状态和磁盘,不把Relay存活等同于事件已进入Sentry。
敏感数据怎样在发送前清理
错误上下文可能包含Cookie、Authorization、用户标识、URL参数、本地变量和请求体。应在SDK回调或Relay规则中做数据最小化,设置IP与个人信息策略,并限制附件。代理不能替代内容合规。
证书错误从哪一跳查
应用到Relay和Relay到Sentry分别验证证书。容器或函数运行时不一定继承宿主CA。不要关闭TLS验证。通用步骤见HTTPS代理证书排查。
验证顺序
- 记录SDK、运行时与Relay版本;
- 确认DSN、环境和上报路径;
- 发送一条带唯一标识的测试事件;
- 检查采样、队列、HTTP状态和丢弃原因;
- 测试短进程Flush与代理中断;
- 确认平台端事件和时间一致;
- 删除测试事件中的敏感上下文。
结论
Sentry代理排查不能只看SDK初始化。沿SDK队列、Envelope、Relay和Ingest逐段验证,同时检查采样与数据过滤,才能判断事件为何没有出现在项目中。






