Как я могу определить, был ли всплеск ошибок в последнее время? - PullRequest
0 голосов
/ 26 февраля 2011

По сути, я работаю над написанием сервиса, который поможет нам определить, не работает ли один из API, к которому у нас есть доступ. Каждый API иногда возвращает случайную ошибку 500 или какую-то другую странную вещь, поэтому мы не хотим предупреждать мир каждый раз, когда получаем случайную ошибку. Я пытаюсь придумать лучший способ определить, был ли в последнее время всплеск ошибок конкретного поставщика.

Предположим, у меня настроен сервис, который будет отслеживать количество ошибок, произошедших с конкретным сервисом в последнее время, а затем написал задание для демона или cron, которое будет периодически проходить через эти числа и отправлять оповещение в случае скачка количество ошибок, которые выдает сервис. Как этот демон определит, получает ли данный сервис большое количество ошибок?

Самый простой способ сделать это - установить жесткое ограничение на количество возникших ошибок и отправить предупреждение, если число ошибок превысит этот предел. Но у меня есть ощущение, что это обманчиво просто (другими словами, это выглядит легко, но в конечном итоге оказывается сложным). Главное, что меня беспокоит, - это выбор этого предела. Как выбрать хороший лимит? Как мне сделать масштабирование с увеличением трафика?

Кто-нибудь решил эту проблему в прошлом и нашел решение, которое работает очень хорошо? Есть ли известные алгоритмы для этого? Одно из предпочтений, которое у меня было бы для решения: чем меньше данных я должен отслеживать, тем лучше.

1 Ответ

3 голосов
/ 26 февраля 2011

Как насчет того, чтобы попытаться подойти к вопросу с математической точки зрения.Я предполагаю, что у вас уже есть некоторые данные (сколько исключений происходит в день) в течение некоторого времени.Таким образом, из этих данных можно выяснить статистическое распределение (возможно, нормальное (кривая колокольчика)), и всякий раз, когда число исключений превысит стандартное отклонение, превышающее стандартное, на 1,5, выведите предупреждение.

Другими словамипопробуйте выяснить, каково обычно число исключений, и если ваша система превысит это число на 1 стандартное отклонение или вызовет сигнал тревоги.

...