Ad Widget

Collapse

Вопрос про expression в триггере

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • neiromc
    Member
    • Sep 2010
    • 58

    #1

    Вопрос про expression в триггере

    Всем привет.

    Нужен Expression для вот такой логики триггера:
    Тип значения = string
    значение запрашивается раз в 15 минут

    "Если в течение 75 минут (5 запросов значения) нет изменений значения, то срабатывать."

    грубо сказать, если 5 раз я получил 5 одинаковых строк, то срабатывать.


    Спасибо.
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Попробуйте использовать функцию count
    Пример:
    {Template:status.jDB.txt[NEW_UPLOAD].count(3600,"OK","eq")}=0
    {Template:status.jDB.txt[NEW_UPLOAD].count(#5,"OK","eq")}=0
    Если за 1 час, второй пример 5 попыток, нет ни одного значения OK, то проблема.

    Comment

    • neiromc
      Member
      • Sep 2010
      • 58

      #3
      что то я вас не понял

      сделал банально, правда не уверен что отработает

      {05_PT_SolverBuyers:solver.sh[COM105].prev(3)}={05_PT_SolverBuyers:solver.sh[COM105].prev(2)}={05_PT_SolverBuyers:solver.sh[COM105].prev(1)}={05_PT_SolverBuyers:solver.sh[COM105].prev(0)}={05_PT_SolverBuyers:solver.sh[COM105].last(0)}

      Будет такое жить?

      если нет, то как узнать пред-предыдущее значение?

      Спасибо.
      Last edited by neiromc; 09-09-2010, 13:31.

      Comment

      • neiromc
        Member
        • Sep 2010
        • 58

        #4
        всё! победил, переделал логику и все встало на свои места. Zabbix - лучший!

        Comment

        • dima_dm
          Senior Member
          • Dec 2009
          • 2697

          #5
          Обычно публикуют, как проблема была решена, чтобы пост был информативным и по нескольку раз одно и то же не спрашивали.
          prev float, int, str, text, log Возвращает предыдущее значение. Параметр игнорируется.
          Аналог last(#2)

          Comment

          • zalex_ua
            Senior Member
            Zabbix Certified Trainer
            Zabbix Certified SpecialistZabbix Certified Professional
            • Oct 2009
            • 1286

            #6
            Originally posted by dima_dm
            prev float, int, str, text, log Возвращает предыдущее значение. Параметр игнорируется.
            Аналог last(#2)
            Меня этот абзац поверг в смятение
            Я рекомендовал бы немного форматировать текст, скопированный из таблицы в документации. И также лучше указывать что это согласно документации.
            А вообще почет и уважение за систематическую помощь на форуме.

            Comment

            • dima_dm
              Senior Member
              • Dec 2009
              • 2697

              #7
              Originally posted by zalex_ua
              Меня этот абзац поверг в смятение
              Я хотел донести мысль, что у функции prev Параметр игнорируется, и использовать нужно функцию last(#2), и не пропускать символ #. Да, согласен, действительно не очень удачно сформулировал.

              Comment

              • neiromc
                Member
                • Sep 2010
                • 58

                #8
                Я ж написал, что переделал логику
                У меня значение снимается раз в час, соответственно триггер:
                {05_PT_SolverBuyers:solver.sh[COM105].change(0)}=0

                т.е. если last и prev равны, то триггер срабатывает.

                Comment

                • dima_dm
                  Senior Member
                  • Dec 2009
                  • 2697

                  #9
                  Просто Вы писали про 5 значений. Такое условие можно написать через оператор &.
                  {05_PT_SolverBuyers:solver.sh[COM105].last(0)}={05_PT_SolverBuyers:solver.sh[COM105].last(#2)} & {05_PT_SolverBuyers:solver.sh[COM105].last(#2)}={05_PT_SolverBuyers:solver.sh[COM105].last(#3)} & {05_PT_SolverBuyers:solver.sh[COM105].last(#3)}={05_PT_SolverBuyers:solver.sh[COM105].last(#4)} & {05_PT_SolverBuyers:solver.sh[COM105].last(#4)}={05_PT_SolverBuyers:solver.sh[COM105].last(#5)}

                  Но гораздо красивее изменить логику, и использовать функцию count, смотрите описание, у неё очень много опций.

                  Comment

                  • neiromc
                    Member
                    • Sep 2010
                    • 58

                    #10
                    ага, понял.
                    Спасибо.

                    Comment

                    • EugeneSemyonov
                      Junior Member
                      • Apr 2020
                      • 27

                      #11
                      В версии 4.4 в описании функции prev() написано:
                      Предыдущее значение. Поддерживаемые типы значений: float, int, str, text, log Результатом является то же самое, что и last(#2).
                      Слов о том, что "Параметр игнорируется." нет. Это подразумевается по-умолчанию? "Поддерживаемые типы значений" относится только к возвращаемым значениям?

                      Comment

                      • Semiadmin
                        Senior Member
                        • Oct 2014
                        • 1625

                        #12
                        Просто не стали дублировать детальное описание функции last(), т.к prev() - всего лишь alias last(#2). Supported value types - те типы значений, к которым применима функция last(). А возвращает она число, если на входе число в корректной форме (пусть даже тип - текстовый), или ошибку.

                        Comment

                        Working...