Ad Widget

Collapse

Как сделать производную метрику?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    #1

    Как сделать производную метрику?

    Добрый день!

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

    С зависимым ЭД и Change в препроцессинге не получится - он отбрасывает отрицательные значения...
    Вычисляемый ЭД с change() может давать неверные данные т.к. его выполнение не синхронизированно с получением данных в базовом ЭД...
    JS - не знаю как взять предыдущее значение...

    Вот такая простая задачка.. Может у кого-то есть решение?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Интересный вопрос, коллега.

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

    А вот если у исходного элемента данных периодичности нет (т.е. данные могут прийти в любой момент - например, быть отосланными черех zabbix_sender), то и не знаю...
    В предобработке (даже с использованием JavaScript) добраться до предыдущих значений в истории нельзя. Разве что делать из JavaScript-а HTTP/HTTPS-вызов, в котором обращаться к истории через Zabbix API, но мне кажется, что это то ещё извращение...

    Ещё, как вариант для частного случая: если известно, что значения могут поступать не чаще чем, скажем, раз в 10 секунд, то можно извратиться и сделать вычисляемый элемент данных с интервалом эти 10 секунд, в котором написать такую формулу, в которой при помощи функции count() проверять, было ли вообще значение за последние 10 секунд: если да - тогда корректно обсчитывать результат, а если нет - то выдавать какую-нибудь фигню, которую следующим шагом препроцессинга просто убирать как непрошедшую проверку на корректность.

    Comment

    • Hamardaban
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • May 2019
      • 2713

      #3
      Да - вот оказалось что простое - не всегда просто! :-)
      Ситуация усложняется тем, что базовый ЭД имеет небольшой фиксированный интервал обновления и (!) препроцессинг с "отбрасыванием не изменившегося с периодическим контролем", что в совокупности дает крайне неравномерный поток данных.
      Спасибо за наводку - попробую подумать в сторону вариантов использования условия в count.

      Comment

      Working...