Ad Widget

Collapse

Не работает функция calculate

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ArmageddonNsk
    Junior Member
    • May 2021
    • 11

    #1

    Не работает функция calculate

    Всем привет, хочу посчитать значения по asterisk, дано:
    вытаскиваю json из БД по статусам звонков, их всего 4: ANSWER, BUSY и т.д.
    распарсиваю по значениям, если значения в выводе нет - астер даёт ошибку и значение не обновляется, это нормально
    далее использую их в формуле сложения через функцию sum и получаю ошибку:
    Cannot evaluate function: item "//obdc.cdr.busy[trunk]" is not supported at "last(//obdc.cdr.busy[trunk]),
    last(//obdc.cdr.failed[trunk]),
    last(//obdc.cdr.noanswer[trunk]),
    last(//obdc.cdr.answered[trunk])))
    *100)".​".​
    значения busy действительно нет, но судя по документации к sum - Если некоторые элементы данных не имеют данных за требуемый период, они игнорируются в вычислении. Если никакие элементы данных не имеют данных, то функция вернет ошибку.
    считаться должно, есть основное значение answered
    это ошибка документации? знаю что могу передалать получение данных не через json а через запрос каждого элемента, но данный путь мне кажется неправильным.
  • ArmageddonNsk
    Junior Member
    • May 2021
    • 11

    #2
    я похоже понял в чем проблема, нет агрегации.
    подскажите как можно поставить 0, если jsonpath не найден в полученых данных, вместо ошибки?

    Comment

    • Hamardaban
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • May 2019
      • 2713

      #3
      В припроцессинге у шага jsonpath справа отметьте чек "другое при ошибке" и внизу выберите нужное действие, в частности установить значение в 0

      Comment

      Working...