Ad Widget

Collapse

Дребезг триггера. Текущее лечение

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • csr
    Member
    • Mar 2016
    • 71

    #1

    Дребезг триггера. Текущее лечение

    День добрый

    Есть триггер, который проверяет два значения: текущий статус и последний результат:
    Code:
    (last(/host/job.currentstate["Job#3"])=0 and last(/host/job.lastresult["Job#3"])<>0) and
    (last(/host/job.lastresultmsg["Job#3"])=last(/host/job.lastresultmsg["Job#3"]))
    Все айтемы зависимы от одного айтема, откуда они получают свое значение через JsonPath препроцессинга. В json, которое приходит в "мастер айтем" и вызывает алерт все верно: currentstate=0 и lastresult=0 (т.е. триггер не должен включаться).

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

    Каков бэст практикс на текущий момент? Все так же c sum изворачиваться или что-то подобное? Или для такого случая есть красивое лечение?
  • Answer selected by csr at 21-11-2023, 18:58.
    Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    Best practice - в FAQ

    Comment

    • Alex_UUU
      Senior Member
      • Dec 2018
      • 541

      #2
      Скажу по секрету, этоти триггер обюрабатывается ЧЕТЫРЕ раза, т.к. в нем принимают участие четыре ЭД :-)
      Ну как вариант сделать еще один ЭД, куда предпроцессингом поместить расчет. Например в предобратоке основного элемента сделать вычисления и добавить новый json элемент. Ну и отдельный ЭД от него. На который повесить триггер :-)
      Или поиграться с выражением восстановления

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #3
        Best practice - в FAQ

        Comment

        • csr
          Member
          • Mar 2016
          • 71

          #4
          Originally posted by Alex_UUU
          Скажу по секрету, этоти триггер обюрабатывается ЧЕТЫРЕ раза, т.к. в нем принимают участие четыре ЭД :-)
          Ну как вариант сделать еще один ЭД, куда предпроцессингом поместить расчет. Например в предобратоке основного элемента сделать вычисления и добавить новый json элемент. Ну и отдельный ЭД от него. На который повесить триггер :-)
          Или поиграться с выражением восстановления
          то, что три раза обрабатывается это понятно (используется три айтема). просто дребезг был из-за конкретной пары и по-этому так и написал. а если сделать новый элемент, то имхо будет все тоже самое, только с чуть более высокой нагрузкой, т.к. значения все равно будут вычислены последовательно

          Originally posted by Semiadmin
          Best practice - в FAQ
          я надеялся, что я что-то пропустил и в таких случаях у заббикса есть что-то вроде обновления нескольких зависимых элементов в рамках "транзакции".
          правильно понимаю, что ничего не изменилось и надо делать монструозные формулы?

          за ссылку спасибо​

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #5
            ничего нового

            Comment

            • csr
              Member
              • Mar 2016
              • 71

              #6
              понятно, спасибо

              Comment

              Working...