Как я могу найти корреляции между сбоями и системными средами?

10

В свое свободное время я работаю над небольшой веб-системой, которая собирает отчеты о сбоях (но не о других, не сообщающих об ошибках), отправляемых из приложений Delphi для Windows.

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

Как пример, как это должно работать:

  • для каждого сбоя в базе данных имеется отчет, в котором есть отпечаток / хэш-код трассировки стека (стек вызовов) на момент сбоя для выявления дубликатов
  • алгоритм проверяет, все ли дубликаты отчета об ошибках также имеют некоторые другие общие атрибуты, например, отсутствующий пакет обновления операционной системы
  • результат анализа перечисляет все свойства, которые имеют общие отчеты об ошибках

Давайте предположим, что эти автоматические отчеты об ошибках содержат всю ключевую информацию, такую ​​как имена всех процессов, которые в данный момент выполняются, имена файлов, информация о версии загруженных библиотек DLL и т. Д.

Как я могу найти корреляции между повторяющимися сбоями и окружающей средой? Существуют ли конкретные алгоритмы или статистические методы, которые могут помочь?


источник
2
Обнаружение корреляции - тяжелая задача. Вы видели этот инструмент на работе? Это может помочь вам найти правильный способ организации ваших данных.
То есть вы тоже хотите сделать корреляционный расчет в Delphi? Затем взгляните на этот список математических функций Delphi : он охватывает много вопросов, а также дает пояснения и ссылки на библиотеки.
@DaveBall Спасибо за интересную ссылку, однако, хотя отчеты об ошибках поступают из Delphi, веб-сервис на самом деле реализован на Java - возможно, я могу использовать алгоритмы в качестве отправной точки или в «автономном» инструменте статистики.
1
Возможно, вы захотите взглянуть на «дискретные модели опасности». Это похоже на случай, когда вы хотите регрессировать события отказа (сбои) на фиксированные характеристики (переменные среды) и время с момента последнего сбоя. Если у вас будет достаточно наблюдений (отчетов о сбоях), вы сможете добавить взаимодействия между переменными среды в модель. Затем они укажут вам направление системных конфликтов. К сожалению, я не знаю, насколько легко реализовать такую ​​модель в Java.
jmtroos
1
Виды анализов, которые вы, вероятно, могли бы использовать, зависят от масштаба проблемы, т. Е. Сколько существует различных видов аварий? Сколько существует возможных атрибутов?
Самер

Ответы:

1

Не могли бы вы попробовать [не разбившиеся] машины вашего пользователя на ту же информацию, что и в отчете о сбое? Потому что тогда вы могли бы использовать логистическую регрессию для моделирования этих атрибутов (и взаимодействий) с вероятностью сбоя.

zzk
источник