Error handling 我如何确定最近是否出现错误高峰?

Error handling 我如何确定最近是否出现错误高峰?,error-handling,monitoring,metrics,reliability,Error Handling,Monitoring,Metrics,Reliability,本质上,我正在编写一个服务,它将帮助我们确定我们访问的某个API是否出现故障。每个API都会偶尔返回一个随机的500错误或其他一些奇怪的东西,所以我们不想在每次出现随机错误时都向世界发出警报。我正试图想出最好的方法来确定最近某个供应商是否出现了错误高峰 假设我设置了一个服务来跟踪最近某个特定服务发生的错误数量,然后编写一个守护进程或cron作业,定期检查这些数字,并在服务出现错误数量激增时发送警报。该守护进程如何确定给定的服务是否获得大量错误 最简单的方法是对出现的错误数设置一个硬限制,并在错误

本质上,我正在编写一个服务,它将帮助我们确定我们访问的某个API是否出现故障。每个API都会偶尔返回一个随机的500错误或其他一些奇怪的东西,所以我们不想在每次出现随机错误时都向世界发出警报。我正试图想出最好的方法来确定最近某个供应商是否出现了错误高峰

假设我设置了一个服务来跟踪最近某个特定服务发生的错误数量,然后编写一个守护进程或cron作业,定期检查这些数字,并在服务出现错误数量激增时发送警报。该守护进程如何确定给定的服务是否获得大量错误

最简单的方法是对出现的错误数设置一个硬限制,并在错误数超过该限制时发出警报。但我有一种直觉,这看似简单(换句话说,它看起来很简单,但最终却很复杂)。我主要关心的是选择这个限制。我如何选择一个好的限制?如何使其随着流量的增加而扩展


过去有没有人解决过这个问题,并找到了一个非常有效的解决方案?这方面有什么著名的算法吗?我对解决方案的一个偏好是:跟踪的数据越少越好。

试着从数学的角度来处理这个问题怎么样。我假设您已经收集了一些数据(每天发生多少异常)一段时间。因此,您可以从这些数据中计算出统计分布(可能是正态分布(钟形曲线)),每当异常数超过正常值1.5个标准差时,就会发出警报


换句话说,试着找出异常的正常数量,以及你的系统是否会超过该数量1个标准差,从而触发警报。

试着从数学的角度来处理这个问题。我假设您已经收集了一些数据(每天发生多少异常)一段时间。因此,您可以从这些数据中计算出统计分布(可能是正态分布(钟形曲线)),每当异常数超过正常值1.5个标准差时,就会发出警报

换句话说,试着找出异常的正常数量,如果您的系统将超过该数量1个标准差,那么就会触发警报