Сохранение состояния машины во временных рядах Graphite для последующего извлечения KPI - PullRequest
0 голосов
/ 01 октября 2019

имея машину, которая отправляет (не регулярно) свои значения состояния 0, 1, 2, мы храним ее в Graphite. Теперь статус означает:

  • 0 - остановлено
  • 1 - работает
  • 2 - остановлено из-за аномалии

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

Или, если данные предварительно обработаны для вычисления временных интервалов, а затем сохранены три набора данных, такие как: состояние.working, status.stopped, status.alarm и для каждого магазина, когда началось конкретное «событие» и сколько оно длилось?

Существуют другие KPI, например количество аварийных сигналов в день. Получение двух точек данных состояния подряд, которые указывают состояние «2», на самом деле является единичным сигналом тревоги и должно считаться как 1.

Итак, есть ли лучший способ сохранить такие данные без предварительной обработки? Звучит довольно часто, но (позор нам?) Мы не нашли эту тему хорошо изученной.

Спасибо.

1 Ответ

0 голосов
/ 01 октября 2019

Графит имеет ряд функций, которые могут помочь вам здесь. Выделяется функция summarize(), в которой вы можете передать метод агрегирования (в данном случае sum) и продолжительность в минутах / часах / днях / неделях / и т. Д.), Посмотрите здесь

isNonNull - это еще одна полезная функция : ее можно использовать для определения существования точки данных независимо от значения.

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

...