имея машину, которая отправляет (не регулярно) свои значения состояния 0, 1, 2, мы храним ее в Graphite. Теперь статус означает:
- 0 - остановлено
- 1 - работает
- 2 - остановлено из-за аномалии
Запрошенные KPI дляВыдержка классическая: сколько времени на статус 0 или 1 или 2 в день или неделю? Прежде чем изобретать колесо, мы рассмотрим лучший способ вычисления этих PKI, и если в Graphite (или, возможно, другом решении для временных рядов) уже есть функция, которая имеет дело с суммированием времени, когда значение точки данных является просто условием. Очевидно, что временные интервалы для суммирования не сохраняются, это время, прошедшее между точкой данных и следующей.
Или, если данные предварительно обработаны для вычисления временных интервалов, а затем сохранены три набора данных, такие как: состояние.working, status.stopped, status.alarm и для каждого магазина, когда началось конкретное «событие» и сколько оно длилось?
Существуют другие KPI, например количество аварийных сигналов в день. Получение двух точек данных состояния подряд, которые указывают состояние «2», на самом деле является единичным сигналом тревоги и должно считаться как 1.
Итак, есть ли лучший способ сохранить такие данные без предварительной обработки? Звучит довольно часто, но (позор нам?) Мы не нашли эту тему хорошо изученной.
Спасибо.