0

基本的に、私はアクセスするAPIの1つがダウンしたかどうかを判断するのに役立つサービスの作成に取り組んでいます。すべてのAPIは、ランダムな500エラーやその他の奇妙なものをときどき返すため、ランダムなエラーが発生するたびに世界に警告したくはありません。最近、特定のプロバイダーからのエラーが急増したかどうかを判断するための最良の方法を考えようとしています。

特定のサービスで最近発生したエラーの数を追跡するサービスを設定し、それらの数を定期的に調べて、数が急増した場合にアラートを送信するデーモンまたはcronジョブを作成したとします。サービスが提供しているエラー。そのデーモンは、特定のサービスが多数のエラーを受け取っているかどうかをどのように判断しますか?

これを行う最も簡単な方法は、発生したエラーの数に厳しい制限を設定し、エラーの数がその制限を超えたときにアラートを送信することです。しかし、私はこれが一見単純に見える(言い換えれば、簡単に見えますが、結局は複雑になる)と直感しています。私が抱えている主な懸念は、この制限を選択することです。適切な制限を選択するにはどうすればよいですか?トラフィックの増加に合わせて拡張するにはどうすればよいですか?

誰かが過去にこの問題を解決し、非常にうまく機能する解決策を見つけましたか?このためのよく知られたアルゴリズムはありますか?私が解決策として持つであろう1つの好みは、追跡しなければならないデータが少ないほど良いということです。

4

1 に答える 1

3

数学的な観点から問題に取り組んでみてはどうでしょうか。しばらくの間、すでにいくつかのデータ(1日に発生する例外の数)が収集されていると思います。したがって、そのデータから統計分布(おそらく正規分布(ベルカーブ))を把握でき、例外の数が正規分布より1.5標準偏差程度高くなるたびに、アラートを発します。

つまり、通常の例外の数を把握し、システムがその数を1標準偏差以上超えるかどうかを調べて、アラームをトリガーします。

于 2011-02-25T23:40:28.927 に答える