2011-02-25 43 views
0

本質上,我正在編寫一個服務,它將幫助我們確定我們訪問的API之一是否出現故障。每個API偶爾會返回一個隨機500錯誤或其他奇怪的事情,所以我們不想在每次出現隨機錯誤時提醒世界。我試圖想出最好的方法來確定最近是否有來自特定提供商的錯誤峯值。如何確定最近是否出現錯誤?

假設我有一個服務設置,可以跟蹤最近發生的某個特定服務的錯誤數量,然後編寫一個守護進程或cron作業,定期檢查這些數字,並在出現峯值時發送警報服務提供的錯誤數量。守護進程如何確定給定的服務是否獲得大量錯誤?

要做到這一點,最簡單的方法是設置一個嚴重限制已經出現的錯誤的數量,並在錯誤數量超過該限制時發出警報。但我有一種直覺,認爲這看似簡單(換句話說,它看起來很簡單,但最終變得複雜)。我所關心的主要問題是選擇這個限制。我如何選擇一個好的限制?如何通過增加流量來擴展規模?

有沒有人在過去解決過這個問題,並找到了一個很好的解決方案?有沒有這方面的知名算法?我希望得到一個解決方案的優先選擇是:我需要跟蹤的數據越少越好。

回答

3

如何從數學角度嘗試解決這個問題。我假設你已經收集了一些數據(每天發生多少次例外)一段時間。所以你可以從數據中找出統計分佈(可能是正常的(鐘形曲線)),並且每當異常的數量超過正常值1.5標準偏差時,就會發出警報。

換句話說,試圖找出正常的異常數是多少,如果你的系統將超過這個數字1個標準偏差或者觸發一個警報。

相關問題