Ad Widget

Collapse

Вычисляемый элемент данных

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Spec
    Member
    • Apr 2014
    • 37

    #1

    Вычисляемый элемент данных

    Есть 2 узла.
    В обоих по 1 элементу данных, которые парсятся из файла.
    Данные целого типа и представляют из себя числа.
    Проблема в том как создать элемент, который бы был суммой этих 2 элементов.

    Пробовал делать так:
    last("artem1:vfs.file.regexp["C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml"," ([0-9]+)",,54,54,\1]")+last("artem2:vfs.file.regexp["C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml"," ([0-9]+)",,54,54,\1]")

    Выдает ошибку, что мол не могу найти такой элемент.
    Перечитал справку, хоть бы 1 нормальный пример...
    Подскажите как сделать???
  • DRVTiny
    Senior Member
    • Sep 2011
    • 162

    #2
    Советую почитать тред, там выражение посложнее даже: https://www.linux.org.ru/forum/admin/9790256
    Да, и на текстовых данных, которые возвращает regexp, ничего не получится вроде.

    Comment

    • Spec
      Member
      • Apr 2014
      • 37

      #3
      Originally posted by drvtiny
      Советую почитать тред, там выражение посложнее даже: https://www.linux.org.ru/forum/admin/9790256
      Да, и на текстовых данных, которые возвращает regexp, ничего не получится вроде.
      У меня тип данных стоит целое число. Ну и собственно так оно и есть, по этим данным график успешно строится. Спасибо за ссылку. Почитаю.

      Comment

      • Spec
        Member
        • Apr 2014
        • 37

        #4
        Перечитал ссылку которую привели. Там пример где пытаются оперировать данными на 1 узле. В этом плане, я думаю, в примере все проще, чем у меня. У меня данные берутся из 2 разных узлов. Данные в формате числовой (целое положительное). Собственно делаю по справке, т.к. ничего больше не могу найти. Кто-нибудь делал подобное?

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #5
          Code:
          last(192.168.1.2:agent.ping)+last(Zabbix server:agent.ping)
          отлично работает, цифру 2 показывает.

          last("artem1:vfs.file.regexp["C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml"," ([0-9]+)",,54,54,\1]")+last("artem2:vfs.file.regexp["C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml"," ([0-9]+)",,54,54,\1]")
          а вот в вашем выражении я вижу какую то фигню с кавычками. Давайте попробуем понять что именно они у вас "откавычивают"


          Code:
          last(
          "artem1:vfs.file.regexp["
          C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml
          ","
          ([0-9]+)",,54,54,\1]
          ")+last("artem2:vfs.file.regexp["
          C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml
          ","
          ([0-9]+)
          ",,54,54,\1]"
          )
          Врятли вы хотели добиться именно этого. Либо убирайте лишние, либо меняйте двойные на одинаковые, либо уже прочтите документацию.

          Comment

          • Spec
            Member
            • Apr 2014
            • 37

            #6
            Фигня в кавычках - это элемент данных который я создал. Он вполне себе работает выбирая необходимые мне данные. Документацию я прочел. Там пример приводится похожий на ваш, со стандартными элементами в пределах 1 узла. У меня элементы нестандартные и плюс в разных узлах. На форум я написал потому что не получается сделать. Я попробовал в разных вариантах - не хочет он считать и все тут.
            Могу предоставить необходимую информацию. И да еще вопрос - чем одинарные кавычки отличаются от двойных? Почему вы предлагаете заключить в одинарные именно?

            Comment

            • Spec
              Member
              • Apr 2014
              • 37

              #7
              Перечитал еще раз справку.
              Сделал по примеру (с экранированием внутренних кавычек, пример №5):

              last("artem1:vfs.file.regexp[\"C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml\", \"([0-9]+)\",,54,54,\1]")+last("artem2:vfs.file.regexp[\"C:\Program Files\TMeter\XmlTrafficReports\CurrentMonth.xml\", \"([0-9]+)\",,54,54,\1]")

              Выдает ошибку как и прежде, причем если поменять функцию с last на max, то в ошибке почему-то все равно указана предыдущая функция, такое чувство создается, как будто элемент не обновляется.

              P.S.
              Справка Zabbix по вычисляемым элементам

              Comment

              • Spec
                Member
                • Apr 2014
                • 37

                #8
                Как я понимаю Zabbix не может сложить данные получаемые функцией regexp, т.к. в ответ возвращается текст. Отдельно такого рода элементы я создал и указал в них тип Числовой, Целое. Графики по ним отдельно рисуются отлично. А вот сложить их в таком виде не получается.

                Думаю нужно как-то по-другому делать.
                Задача состоит в том чтобы сложить 2 элемента такого рода каким-нибудь образом.
                У кого какие будут идеи?

                Comment

                • Spec
                  Member
                  • Apr 2014
                  • 37

                  #9
                  Ну что, никто не знает как реализовать?

                  Comment

                  • Spec
                    Member
                    • Apr 2014
                    • 37

                    #10
                    Ладно, видимо невозможно складывать в принципе данные такого рода.
                    Буду тогда по графикам оценивать объем трафика.

                    Comment

                    Working...