Как «прорядить» данные с мониторинга?

Всем привет, необходимо каким то образом обработать данные с мониторинга суть в чем:
Мониторинг записывает данные в таблицу раз в минуту, соответственно, таблица довольно объемная получается со временем.
Хотелось бы как-то "прорядить" эти данные, что бы данные за предыдущую неделю были не за каждую минуту, а час, а через год уже ежесуточные по среднему значению. Какие варианты реализации?
  • Вопрос задан
  • 375 просмотров
Решения вопроса 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
вообще данные удалять конечно не хорошо.
Поэтому неплохой вариант при выбое группировать данные с нужным интервалом.
Тогда и будет не так много для обработки, и при этом подробные исторические данные остунутся на случай важных переговоров.

Все это динимически может быть.
Открываете график за год -> бекенд группирует по дням
Открываете за месяц -> по 12 часов
Неделя/День -> часовые точки
Открываете в смысле в графике выбрали интервал дат, а бекенд уже сам смотрит сколько это времени и переключает точки.
Ответ написан
Комментировать
@n-fom
Есть ещё вариант mysql секционирование
https://habrahabr.ru/post/66151/
Ответ написан
Комментировать
@nirvimel
Это называется агрегация (или агрегирование) данных.
Для этого типично используется OHLC, или среднеарифметическое, или средневзвешенное (если одни элементы данных "важнее" других, и каждого элемента есть свой "вес").

Реализация всех приведенных функции очень простая. Разница только в том, выполняется ли агрегация в реальном времени и постфактум. Агрегация в реальном времени позволяет сильно экономить дисковое пространство, но исходные данные теряются безвозвратно, и если в будущем понадобиться выполнить другую агрегацию, то это будет уже невозможно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Можно узнать как это делается в базах данных временных рядов: RRDtool и Whisper (Graphite)

Он оба предназначены для мониторинга сервисов.
Ответ написан
Комментировать
drno-reg
@drno-reg
см не кратко
по своему опыту могу сказать, что для разбора кейсов необходимы именно не агрегированные так называемые сырые данные.

В свое время, я на процедурах и джобах Oracle реализовал оперативный мониторинг ключевых показателей качества бизнес сервисов (KPI/BSQI) для ИТ. Пришлось выдумывать процедуру, которая раз в час занимается перекладыванием сырых данных в так называемую архивную таблицу.
НО в сегодняшиних реалях эта проблема уже решается штатными методами СУБД (Oracle/MySQL) партиционирования.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы