Алгоритмы установления исходных данных из данных временных рядов - PullRequest
0 голосов
/ 21 мая 2018

В моем приложении я собираю много метрик: метрики аппаратного обеспечения / собственной системы (такие как загрузка ЦП, доступная память, память подкачки, сетевой ввод-вывод в виде пакетов и байтов, отправленных / полученных и т. Д.)), а также метрики JVM (сборщик мусора, размер кучи, использование потоков и т. д.), а также метрики уровня приложения (инструментарии, которые имеют значение только для моего приложения, например, # заказов в минуту и ​​т. д.).

В течение недели, месяца, года я вижу тенденции / закономерности в этих показателях.Например, когда все задания cron запускаются в полночь, я вижу, как ЦП и диск трескаются при создании отчетов и т. Д.

Я ищу способ оценить / оценить показатели как здоровые / нормальные по сравнению с нездоровыми / ненормальнымино это принимает эти модели во внимание.Например, если центральный процессор каждую ночь всплывает (+/- 5 минут), это следует считать « нормальным », а не отключать оповещения.Но если центральный процессор во время «отлива» в течение дня, скажем, между 11:00 и полуднем, это определенно должно вызвать срабатывание некоторых красных флажков.

У меня есть возможность хранить свои метрики за раз-серии базы данных, если это вообще помогает запустить этот аналитический процесс, но я не имею ни малейшего понятия о том, какие алгоритмы, методы и стратегии я мог бы использовать, чтобы установить эти циклические "базовые показатели", которые действуют как функция времени.Очевидно, что такая система должна была бы быть предварительно отобранной или даже обученной с историческими данными, которые были сопоставлены с нормальными / ненормальными значениями (именно поэтому я учусь к базе данных временных рядов в качестве основного хранилища), но это новая территориядля меня, и я даже не знаю, с чего начать Google, чтобы вернуть значимых / релевантных / образованных кандидатов решения в результатах поиска.Есть идеи?

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете классифицировать каждую метрику (загрузка ЦП, доступная память, память подкачки, сетевой ввод / вывод) с указанием дня и времени как плохих или хороших для каждой метрики.Придумайте набор данных для заданного периода времени со значениями метрики и с хорошими или плохими значениями.Обучите модель, используя 70% данных с хорошими и плохими ответами в данных.Затем протестируйте обученную модель, используя остальные 30% данных без ответов, чтобы увидеть, получаете ли вы предсказанные результаты (хорошие или плохие) из модели.Вы можете использовать алгоритм классификации.

...