Ad Widget

Collapse

Использование в описании события ITEM.LASTVALUE1 при использовании функции last

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

    #1

    Использование в описании события ITEM.LASTVALUE1 при использовании функции last

    Комрады, нужны помощь:

    Есть триггер, основанный на сравнении айтема с его предыдущим состоянием
    Code:
    last(/host/vfs.fs.size[D:,used],#1)-last(/host/vfs.fs.size[D:,used],#2)>(1024*1024*200)
    (нужен алерт при освобождении места больше чем на 200 мегабайт).

    Нужно в описании события вывести текущее значение и его предыдущее, т.е. то, что и сравниваем. {ITEM.LASTVALUE1} и {ITEM.LASTVALUE2} (ITEM.VALUE1/ITEM.VALUE2) возвращают одно и то же значение.

    Как можно это красиво решить?

  • Answer selected by csr at 03-10-2025, 09:30.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Всё верно: все перечисленные вами макросы, как и описано в документации (ссылка), возвращают значение N-го элемента данных из триггерного выражения (последнее либо на момент события, что в данном случае одно и то же). У вас и первый, и второй элементы данных в триггерном выражении - это один и тот же элемент данных /host/vfs.fs.size[D:,used], и все эти макросы раскрываются в одно и то же значение (последнее на момент события).
    Красиво решить - это использовать для этой цели другой макрос, который бы раскрывался в то, что вам бы хотелось.
    Например, макрос {FUNCTION.VALUE2} (ссылка) раскрывается в значение, возвращаемое второй функцией из триггерного выражения (т.е. в вашем случае - last(...,#2)). Правда, этот макрос поддерживается в именах событий, а не в описании.
    Другой вариант (правда, тоже поддерживаемый не в описании событий, а в их именах) - это использование макросов выражений вида {?ВЫРАЖЕНИЕ}, например:
    Code:
    {?last(/host/vfs.fs.size[D:,used],#2)}
    (ссылка1, ссылка2, ссылка3 с примером).
    Last edited by Kos; 23-09-2025, 09:34.

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #2
      Всё верно: все перечисленные вами макросы, как и описано в документации (ссылка), возвращают значение N-го элемента данных из триггерного выражения (последнее либо на момент события, что в данном случае одно и то же). У вас и первый, и второй элементы данных в триггерном выражении - это один и тот же элемент данных /host/vfs.fs.size[D:,used], и все эти макросы раскрываются в одно и то же значение (последнее на момент события).
      Красиво решить - это использовать для этой цели другой макрос, который бы раскрывался в то, что вам бы хотелось.
      Например, макрос {FUNCTION.VALUE2} (ссылка) раскрывается в значение, возвращаемое второй функцией из триггерного выражения (т.е. в вашем случае - last(...,#2)). Правда, этот макрос поддерживается в именах событий, а не в описании.
      Другой вариант (правда, тоже поддерживаемый не в описании событий, а в их именах) - это использование макросов выражений вида {?ВЫРАЖЕНИЕ}, например:
      Code:
      {?last(/host/vfs.fs.size[D:,used],#2)}
      (ссылка1, ссылка2, ссылка3 с примером).
      Last edited by Kos; 23-09-2025, 09:34.

      Comment

      • csr
        Member
        • Mar 2016
        • 71

        #3
        Как всегда кратко, по делу и с пруфами), спасибо.

        Но я что-то тугодумлю: получается, что в описании проблемы это "красиво" никак не реализовать?

        Да и по-другому я что-то не соображу. Делать для этого отдельный айтем?

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #4
          Красиво в случае с размером файла сделать проблематично. Увы, и {FUNCTION.VALUE}, и {?EXPRESSION} вернут место в байтах, не переводя их в мегабайты или там гигабайты. А макрофункции для такого преобразования нет.

          Comment

          Working...