Ad Widget

Collapse

вычисляемые значения

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Evgeniy
    Senior Member
    • May 2012
    • 157

    #1

    вычисляемые значения

    Приветствую,
    Поставила в тупик очередная задача, не знаю как реализовать, может натолкнет кто-нибудь на правильную мысль. Необходимо сделать элемент данных, в котором будет показываться количество "пропаданий" за последние 12 часов. Т.е. имеем значения:
    50
    49
    51
    0
    20
    50
    49
    0
    0
    0
    0
    51
    Здесь два пропадания.
    Как я представляю, вычисляемый элемент должен иметь вид что-то типа:
    count(12h,(change("itemkey")), -40, "lt")
    Пробовал несколько вариантов, бесполезно.
    "Cannot evaluate function"
    Предполагаю, что нельзя размещать функцию в функции. Но вот что придумать?
    Может с какого-то другого боку подойти? Никто не реализовывал что-нибудь подобное?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Для начала нужно понять, что Вы понимаете под "пропаданием".
    Последовательность нулей (один раз из одного нуля, второй раз - из четырёх)? Или что?

    Comment

    • wins
      Senior Member
      • Sep 2014
      • 307

      #3
      вангую, что считать айтемом количество вхождений - не совсем правильно.
      можно сделать в препроцессинге, через регеэспы.
      Может всетаки sla посчитать надо?

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Делаем Calculated item, принимающий значение 1 в случае пропадания:
        last("itemkey")=0 and prev("itemkey")<>0
        Потом делаем второй Calculated item, считающий функцией count, сколько раз первый был равен 1.

        Comment

        • Evgeniy
          Senior Member
          • May 2012
          • 157

          #5
          Originally posted by Kos
          Для начала нужно понять, что Вы понимаете под "пропаданием".
          Последовательность нулей (один раз из одного нуля, второй раз - из четырёх)? Или что?
          Да, я специально привел пример. Неважно сколько нулей, важен сам факт перехода в ноль, т.е. обычный count тут не подойдет.

          вангую, что считать айтемом количество вхождений - не совсем правильно.
          можно сделать в препроцессинге, через регеэспы.
          Может всетаки sla посчитать надо?
          Не совсем понял, что вы имеете в виду. Хотелось бы пояснить, что у меня из 2 тыс. устройств нет ни одного сервера или коммутора, доступность не важна.
          В SLA минимальная градация - сутки, кроме того, фактически SLA выдаст в процентах время, в течение которого элемент данных был в нуле, если считать SLA по одному из имеющихся триггеров.
          Не понял, зачем числовое значение подвергать "препроцессингу через регеэспы"?
          Делаем Calculated item, принимающий значение 1 в случае пропадания:
          last("itemkey")=0 and prev("itemkey")<>0
          Потом делаем второй Calculated item, считающий функцией count, сколько раз первый был равен 1.
          Примерно в ту же сторону думал, но показалось не "кошерно" два вычисляемых элемента создавать. Придется все перенастраивать и распихивать их по разным группам элементов, и для отображения в комплексных экранах выбирать одну из них. Вариант интересный через last и prev, спасибо за подсказку, но неужели нет более "красивого" решения?
          Last edited by Evgeniy; 02-12-2017, 07:09.

          Comment

          • yukra
            Senior Member
            • Apr 2013
            • 1359

            #6
            Я бы сделал триггер ".last=0 and .diff=1" и на него бы повесил триггер, по триггеры выполнял бы вызов zabbix_sender засылающий единичку в соседний айтем прям с самого сервера (параметр -s, что бы клиента лишний раз не дергать).

            Зы не люблю calculated айтемы.

            Comment

            Working...