如何使用Sentry优雅地处理错误尖峰?

时间:2019-07-02 08:58:05

标签: java sentry

在我们的项目中,我们使用Sentry报告错误。这工作得很好,但是在负载很大的系统上,当第三方系统关闭时,有时我们会看到错误尖峰。例如,如果数据库不可访问,在解决问题之前,我们可能会收到一万次调用,而所有这些都会导致向Sentry报告错误。

我知道sample.rate的Sentry客户端有一个常规设置。这仅允许将所有事件的特定百分比发送到Sentry。但是,我只是想避免在第三方系统故障的情况下产生大量重复的错误报告。我不想限制一般发送的错误数量。有没有一种方法可以配置Sentry客户端,以便在出现尖峰的情况下仅发送几个样本,否则发送所有错误报告?

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找这个:https://docs.sentry.io/server/throttling/

答案 1 :(得分:0)

Java SDK目前仅进行随机采样,但是Sentry本身具有尖峰保护,如this blog post中所述。

docs also have more info.

此外,如果它们是“相同的错误”,则应将它们分组在一起。如果不是自动的,则可以使用事件fingerprint来实现。因此,至少您只会收到1条通知。

您还可以考虑,如果您遇到数以万计的错误,也许添加指数补偿策略来尝试减少与第三方的接触可能会有所帮助。