在我们的项目中我们使用Sentry来报告错误。这工作得很好,但是在负载很大的系统上,当第三方系统宕机时,我们有时会看到错误高峰。例如,如果数据库无法访问,在问题解决之前我们可能会收到几万个调用,所有这些都会导致向 Sentry 报告错误。
我知道Sentry客户端有一个通用的设置sample.rate。这允许仅将所有事件的一定百分比发送到 Sentry。但是,我只是想避免在第三方系统出现故障时出现大量重复的错误报告。我不想限制一般发送的错误数量。有没有办法配置 Sentry 客户端,以便在出现峰值时仅发送一些样本,否则发送所有错误报告?
Java SDK 此时仅进行随机采样,但 Sentry 本身具有尖峰保护,如本博客文章中所述。
另外,如果它们是“相同的错误”,则应该将它们分组在一起。如果不是自动,您可以使用 event 来执行此操作fingerprint。所以至少您只收到 1 条通知。
您还可以考虑,如果您收到数以万计的错误,也许添加指数退避策略来尝试更少地访问第三方可能会有所帮助。