Ad Widget

Collapse

Функция las() с () в нутри

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zabbixx
    Member
    • Jul 2012
    • 71

    #1

    Функция las() с () в нутри

    Привет,
    у меня маленькая проблемка, я хочу создать "Calculated" item и у меня 3 хоста с такой айтимой

    Host1erf_counter["\234(_Total)\206"]
    Host2erf_counter["\234(_Total)\206"]
    Host3erf_counter["\234(_Total)\206"]



    терь у меня в хосте 4 надо суммировать эти все три...

    по идее запускаешь ласт last(Host:item)

    но в моем Item есть ")" что "закрывает функцию last()"

    last ( Host1erf_counter["\234(_Total)\206"] )

    Ошибка выдается "last ( Host1erf_counter["\234(_Total" не сушествует ...

    как "обмануть" ласт))) ?

    с уважением
    Цаббикс
  • zabbixx
    Member
    • Jul 2012
    • 71

    #2
    English version:

    The function last () whit item that contains "()" whitout function

    Comment

    • zabbixx
      Member
      • Jul 2012
      • 71

      #3
      English version:

      The function last () whit item that contains "()" whitout function

      Comment

      • zabbixx
        Member
        • Jul 2012
        • 71

        #4
        workaround is to create one other "Dependet Item" that depends an this Item "perf_counter["\234(_Total)\206"]" and name it like "disk.latency.total"
        now you can use this item inside last()...

        Last edited by zabbixx; 05-06-2018, 11:00.

        Comment

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

          #5
          Аргумент функции last() нужно взять в кавычки. Если этот аргумент (т.е. ключ) сам содержит кавычки - то их заэкранировать обратным слэшем.
          Должно в итоге получиться что-то вроде:
          Code:
          last[B]("[/B]Host1:perf_counter[\"\234(_Total[B])[/B]\206\"]") + last[B]("[/B]Host2:perf_counter[\"\234(_Total[B])[/B]\206\"]") + last[B]("[/B]Host3:perf_counter[\"\234(_Total[B])[/B]\206\"]")
          После редактирования подождать несколько минут, чтобы элемент данных снова перешёл в состояние "поддерживаемый".

          Comment

          • klimenser
            Junior Member
            • Oct 2018
            • 1

            #6
            Originally posted by Kos
            Аргумент функции last() нужно взять в кавычки. Если этот аргумент (т.е. ключ) сам содержит кавычки - то их заэкранировать обратным слэшем.
            Должно в итоге получиться что-то вроде:
            Code:
            last[B]("[/B]Host1:perf_counter[\"\234(_Total[B])[/B]\206\"]") + last[B]("[/B]Host2:perf_counter[\"\234(_Total[B])[/B]\206\"]") + last[B]("[/B]Host3:perf_counter[\"\234(_Total[B])[/B]\206\"]")
            После редактирования подождать несколько минут, чтобы элемент данных снова перешёл в состояние "поддерживаемый".
            я тоже задался вопросом суммирования потребляемой памяти двумя процессами составил такую формулу в вычисляемом элементе:
            last("perf_counter[\Process(rphost#1)\Working Set]")+last("perf_counter[\Process(rphost)\Working Set]")
            но получаю ошибку что элемент не поддерживается, мне тоже надо что то экранировать?

            Comment

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

              #7
              Originally posted by klimenser
              я тоже задался вопросом суммирования потребляемой памяти двумя процессами составил такую формулу в вычисляемом элементе:
              last("perf_counter[\Process(rphost#1)\Working Set]")+last("perf_counter[\Process(rphost)\Working Set]")
              но получаю ошибку что элемент не поддерживается, мне тоже надо что то экранировать?
              Вроде бы, не надо. Если только тот ключ, на который вы ссылаетесь в функции last(), сам не содержит кавычек.
              Другими словами: в функции last() должна быть ссылка на реально существующий ключ; если в вашем случае этот ключ содержит кавычки и/или пробелы, то так и должно быть указано - со всеми кавычками и пробелами, кавычки в этом случае нужно экранировать.

              Comment

              • gimliswamp
                Junior Member
                • Apr 2015
                • 16

                #8
                В calculated item, items которые суммируем должны быть написаны без изменений.
                У меня сделано вот так вот.
                Calculated item
                (last("1.3.6.1.2.1.25.3.3.1.2.["1"]")+
                last("1.3.6.1.2.1.25.3.3.1.2.["2"]")+
                last("1.3.6.1.2.1.25.3.3.1.2.["3"]"))/3

                Суммируя 3 значение и делю на 3.

                И сам item (значение поля Key, поле которое указано в calculated item)
                1.3.6.1.2.1.25.3.3.1.2.["1"]

                У меня в кавычках item.key так он создается автоматом из discover rules. И кавычки мы экранируем.


                То есть в Вашем случае должно быть как то так.
                Host3erf_counter["\234\(_Total\)\206"]

                Хотя может быть у Вас все таки проблема с кавычкой, а не с закрывающей скобкой. + еще и знак деления есть.. мб его экранировать тоже придется.
                Last edited by gimliswamp; 17-10-2018, 09:22.

                Comment

                Working...