Ad Widget

Collapse

Триггер на некорректное значение item

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #16
    Originally posted by IgorB

    Кстати, а отловить ситуацию, когда получение item выходит за рамки timeout - можно? Хоть это функцией nodata ловится? Я, естественно, описал в вопросе весьма упрощенный пример, на практике все немного сложнее.
    Если item выходит за рамки timeout, он становится unsupported.
    Кстати, в версии 3.2 все немного по-другому:


    5.17 Trigger functions

    Several functions are now calculated for unsupported items as well:

    nodata()
    date()
    dayofmonth()
    dayofweek()
    now()
    time()
    Host and item, however, must be enabled as before.

    5.18 Unsupported items and unknown values in triggers/calculated items

    Previously any unsupported item in trigger expression or error in function evaluation immediately rendered the whole expression value to Unknown. Triggers became Unknown, calculated items became unsupported.

    In the new version there's a more flexible approach: unsupported items and errors in function evaluation continue to take part in expression evaluation as unknowns.

    Advantage - logical OR and AND expressions are evaluated, if possible, to known values. For example:

    '1 or Unsuported_item1.some_function()' is evaluated to '1' (True)
    '0 and Unsuported_item1.some_function()' is evaluated to '0' (False)
    See Expressions with unsupported items and unknown values.

    Comment

    • IgorB
      Member
      • Apr 2016
      • 58

      #17
      Originally posted by Semiadmin
      Если item выходит за рамки timeout, он становится unsupported.
      Т.е. тоже функцией nodata не поймается? А какое-же тогда отсутствие данных ловит эта функция? Данные либо приходят хорошие, либо приходят кривые (unsupported, не срабатывает), либо не приходят вообще - то же самое.

      Originally posted by Semiadmin
      Кстати, в версии 3.2 все немного по-другому:
      ...
      Не могу понять, поменялось ли что-то с точки зрения моего вопроса. "Не будет ли так любезен многоуважаемый джинн" (С) немножко растолковать?

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #18
        В 3.0 nodata - только для живых, если item стал unsupported, то и триггеры для него не работают. В 3.2 все сложнее, как именно - можно прочесть в документации, а лучше - проверить на практике, экспериментально.

        Comment

        • IgorB
          Member
          • Apr 2016
          • 58

          #19
          Originally posted by Semiadmin
          Для конкретного item - нет, есть для Application. Думаю, сойдет. В оповещении ведь будет конкретный item упомянут.
          Ага, заработало. Только почему-то Recovery Message приходит такой же, как и аварийный (с тем же сабжем и текстом). И не могу найти макросы (чтобы вставить в сообщение) с именем Application и сообщением о проблеме. Но это уже неважно. Главное - удается словить наличие проблемы и прокричать об этом. А суть проблемы и ее устранение - уже в веб-интерфейсе выясняется и контролируется.

          И достаточно удобно - делаем отдельный Application, контролируемым Item-ам добавляем его (помимо смыслового), и одним Action-ом ставим их все под контроль.

          Спасибо за помощь!

          Comment

          • IgorB
            Member
            • Apr 2016
            • 58

            #20
            Originally posted by Semiadmin
            В 3.0 nodata - только для живых, если item стал unsupported, то и триггеры для него не работают. В 3.2 все сложнее, как именно - можно прочесть в документации, а лучше - проверить на практике, экспериментально.
            Ну так что она ловит-то? Item либо живой, либо нет. Если живой, то данные для него есть. Или функция сама по себе работает и для кривых данных, и для timeout-ов, просто этот item (вместе с функцией) нельзя использовать в триггерах?

            Comment

            • Semiadmin
              Senior Member
              • Oct 2014
              • 1625

              #21
              Originally posted by IgorB
              Ну так что она ловит-то? Item либо живой, либо нет. Если живой, то данные для него есть. Или функция сама по себе работает и для кривых данных, и для timeout-ов, просто этот item (вместе с функцией) нельзя использовать в триггерах?
              Не все данные приходят регулярно. Некоторые (трапперы, логи) могут приходить с непредсказуемыми интервалами. Тут nodata и нужна.

              Comment

              • IgorB
                Member
                • Apr 2016
                • 58

                #22
                Originally posted by semiadmin
                Не все данные приходят регулярно. Некоторые (трапперы, логи) могут приходить с непредсказуемыми интервалами. Тут nodata и нужна.
                Понятно. Еще один спасиб!

                Comment

                Working...