Ad Widget

Collapse

Ошибочная калькуляция в тригерах для некоторых хостов.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • poxeron
    Member
    • Sep 2020
    • 52

    #1

    Ошибочная калькуляция в тригерах для некоторых хостов.

    Здравствуйте.

    Настроен тригер , срабатыващий если скорость пропускной полосы опускается ниже положенного уровня.
    Но тригер срабатывает даже , когда не должен этого делать. Причем не на всех отделениях.
    174< 200-200*0.6 - не является истиной

    В данном примере

    Click image for larger version

Name:	image_2021-02-03_114335.png
Views:	85
Size:	77.7 KB
ID:	418021
    Более того , если проверяю работу тригера. То он не должен отрабатывать

    Click image for larger version

Name:	image_2021-02-03_115049.png
Views:	64
Size:	15.4 KB
ID:	418022

    Почему же отрабатывает? Есть какие-нибудь идеи?

    Со скобками или без - роли не играет
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3406

    #2
    Честно говоря, немного запутанная картина.
    • если полученное значение нужно сравнить с константой, то зачем вместо неё писать арифметическое выражение? (200-200*0.6) будет 80; почему бы не написать сразу 80? Ну, или, в крайнем случае, "200*0.4" (если в дальнейшем конкретное "200" предполагается заменить на макрос)?
    • второй скриншот имеет слабое отношение к первому. На первом мы видим условие (min(120m)<200-200*0.6), на втором (если предположить, что формула аналогичная) - (90<174-174*0.6). Во втором случае правая часть неравенства даёт "69.6", соответственно, "90<69.6" логично даёт FALSE. В первом случае мы не видим всей картины: нужно смотреть историю значений (например, через Latest data) за указанный момент и два часа перед ним и искать там значение меньше восьмидесяти.

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #3
      Кстати, 174 Mbit/s - это, скорее всего, не 174, а 174000000

      Comment

      • poxeron
        Member
        • Sep 2020
        • 52

        #4
        Originally posted by Kos
        Честно говоря, немного запутанная картина.
        • если полученное значение нужно сравнить с константой, то зачем вместо неё писать арифметическое выражение? (200-200*0.6) будет 80; почему бы не написать сразу 80? Ну, или, в крайнем случае, "200*0.4" (если в дальнейшем конкретное "200" предполагается заменить на макрос)?
        • второй скриншот имеет слабое отношение к первому. На первом мы видим условие (min(120m)<200-200*0.6), на втором (если предположить, что формула аналогичная) - (90<174-174*0.6). Во втором случае правая часть неравенства даёт "69.6", соответственно, "90<69.6" логично даёт FALSE. В первом случае мы не видим всей картины: нужно смотреть историю значений (например, через Latest data) за указанный момент и два часа перед ним и искать там значение меньше восьмидесяти.
        Спасибо за наводку . Буду посмотреть.

        Comment

        Working...