Ad Widget

Collapse

1.8.1>1.8.3:Evaluation failed for function:delta (дубль2, надеюсь, успешный).

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Badisoft
    Member
    • Nov 2010
    • 94

    #1

    1.8.1>1.8.3:Evaluation failed for function:delta (дубль2, надеюсь, успешный).

    сменил версию 1.8.1 на 1.8.3, оба раза собрал "из сорцов" (так это, вроде, называется).
    ежесекундно три-пять таких записей в логе, т.к. в темплейтах эта функция используется чуть не в каждом втором триггере.
    это как то лечится?

    дима.
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    это "фича" несколько парит, появляется во всех выражениях где используется более одного значения и при этом одного из значений в базе нету
    например last(0) > last(#2) вызовет описанную ошибку в логах как только прийдут первые данные, но "предыдущих" (#2) данных еще нету
    возникает так же после простоев агента/девайса/сервера

    как это лечить не знаю, можно попробовать добавить в выражения count() - проверять сколько значений в базе за требуемый промежутов времени, возможно если первая часть выражения вернет TRUE, то оставшаяся часть не будет проверяться

    P.S. у меня все это лезит с diff()

    Comment

    • Badisoft
      Member
      • Nov 2010
      • 94

      #3
      Originally posted by Jimson
      это "фича" несколько парит, появляется во всех выражениях где используется более одного значения и при этом одного из значений в базе нету
      У меня это триггер (Router:ifInOctets1.delta(0)}>150000). Он не единственный с функцией delta(), пока вожусь с ним. Ошибка сыплется несколько раз в секунду часами, так что это явно не стартапная ошибка.

      Смущают два момента:

      1. ifInOctet1 почему-то имеет в темплейте тип "с плавающей запятой", хотя в реальности положительное целочисленное в четыре байта (судя по переходу в ноль после четырех+ гигабайт)

      2. delta(N) это разница между MIN/MAX параметра за последние N секунд, если верить русскоязычному описанию функции в форме редактирования. Если аргумент ноль, то и разница всегда будет ноль. Либо я чего-то не понимаю, либо триггер несколько странен, ведь разница MIN/MAХ за нулевой период никогда не будет >150000, она равна нулю, т.е. триггер никогда не сработает.

      Кстати, замена типа данных на целочисленное ничего не дала, замена периода на не нулевой тоже.

      Кнопка "Тест" в форме "настройка триггеров" работает так: нажатие вызывает открытие нового окна "Тест" с формулой триггера и следующей кнопочкой "Тест", нажатие которой вызывает ошибку "Предупреждение. Некорректное значение для [{Router:ifInOctets1.delta(0)}]". Вне зависимости от типа данных, хоть челочисленное ставь, хоть плавающее, хоть delta(0), хоть delta(60).

      C трудом, кстати, угадал (возможно, это есть в доке, пропустил), что надо два раза жмакнуть на измененной строке с формулой, чтобы она действительно заменилась на отредактированную новую, хотя визуально она меняется уже после нажатия кнопки "Заменить". На экране уже новая формула, жмем кнопку "Сохранить" и видим в списке триггеров снова старую формулу.

      Дима.

      Comment

      • Badisoft
        Member
        • Nov 2010
        • 94

        #4
        Да, что-то я сразу не сообразил написать. CentOs, MySQL.

        Comment

        • Jimson
          Senior Member
          • Jan 2008
          • 1327

          #5
          пока не очень понятно что же надо получить в итоге
          то что в шаблонах "из коробки" могут быть ошибки и так извесно, это лишь примеры, к тому же древние

          Comment

          • Badisoft
            Member
            • Nov 2010
            • 94

            #6
            â èòîãå, î÷åâèäíî, íàäî ïîëó÷èòü îòñóòñòâèå ïÿòè îøèáîê-â-ñåêóíäó â ëîãå. åñëè, êîíå÷íî, íå ðàññìàòèðâàòü èòîãîì âñåîáùåå ñ÷àñòüå è ñïðàâåäëèâîñòü.

            íó à ïî ÷àñòè çàâåäîìîé îøèáî÷íîñòè òåìïëåéòîâ, òàê ýòî êàê-òî íåäîâåð÷èâî. âî ïåðâûõ, îíè áûëè âïîëíå áåçîøèáî÷íû íà ïðåäûäóùåé âåðñèè. èëè, êàê ìèíèìóì, ðàáîòîñïîñîáíû. òàê ÷òî ÿ â áîëüøåé ñòåïåíè ñêëîíåí äóìàòü, ÷òî ýòî ÿ ÷åãî-òî íå ïîíèìàþ, à íå òåìïëåéò îøèáî÷åí .

            äèìà.

            ïîäîçðèòåëüíî òîëüêî, ÷òî áîëüøå íèêòî îá ýòîé ïðîáëåìå íå ñïðàøèâàåò .

            Comment

            • Badisoft
              Member
              • Nov 2010
              • 94

              #7
              вот же блин. Это я с работы писать пытался .

              в итоге, очевидно, надо получить отсутствие пяти ошибок-в-секунду в логе. если, конечно, не рассматирвать итогом всеобщее счастье и справедливость.

              ну а по части заведомой ошибочности темплейтов, так это как-то недоверчиво. во первых, они были вполне безошибочны на предыдущей версии. или, как минимум, работоспособны. так что я в большей степени склонен думать, что это я чего-то не понимаю, а не темплейт ошибочен .

              дима.

              подозрительно только, что больше никто об этой проблеме не спрашивает .

              Comment

              • Badisoft
                Member
                • Nov 2010
                • 94

                #8
                В общем, как всегда, все было просто до безобразия. Цитата про функцию delta из документации:

                "То же самое, что и max()-min().
                Начиная с версии Zabbix 1.8.2 эта функция поддерживает секунды, необязательный параметр time_shift".

                Вот бы еще в документации указать, что присутствовавшее в куче темплейтов предыдущих версий написание этой функции в виде delta(0) - подозреваю, что раньше это была разница между последним и препоследним отсчетом - стало теперь невалидным и нужен строго ненулевой аргумент.

                Аналогичная ситуация наверняка и с другими функциями триггеров, в которых "Начиная с версии Zabbix 1.8.2, функция поддерживает секунды".

                Дима.

                Comment

                • hexes
                  Junior Member
                  • Feb 2011
                  • 10

                  #9
                  Такая же фигня, вопрос: как понять где надо править?
                  Просматривать все подряд триггеры? о_О

                  Comment

                  Working...