Ad Widget

Collapse

Перевод числа, получаемого итемом, в экспl

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • evgen.v
    Junior Member
    • May 2016
    • 2

    #1

    Перевод числа, получаемого итемом, в экспl

    Добрый день!
    Есть такая задача - настроить мониторинг анализатора телевизионного сигнала itm-18. Данные получаю по snmp. Возникла проблема с получением данных о частоте появления ошибочных битов. По snmp устройство отправляет частоту, умноженную на 10^10, на заббиксе надо делить полученное число на 10^10 и переводить в экспоненциальную форму. Например, если устройство прислало 11 - надо хранить и выводить его как 1.1e-9.
    Подскажите, каким образом можно это сделать в заббиксе? Пробовал ставить пользовательский множитель 0.0000000001 - в таком случае заббикс в последних данных показывает нули.
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by evgen.v
    Добрый день!
    Есть такая задача - настроить мониторинг анализатора телевизионного сигнала itm-18. Данные получаю по snmp. Возникла проблема с получением данных о частоте появления ошибочных битов. По snmp устройство отправляет частоту, умноженную на 10^10, на заббиксе надо делить полученное число на 10^10 и переводить в экспоненциальную форму. Например, если устройство прислало 11 - надо хранить и выводить его как 1.1e-9.
    Подскажите, каким образом можно это сделать в заббиксе? Пробовал ставить пользовательский множитель 0.0000000001 - в таком случае заббикс в последних данных показывает нули.
    А в каком виде из отдает snmp-сервер? (snmpwalk -v 2c -c public -On <ip> <OID>)
    Какой тип информации стоит? (Type of information)

    Comment

    • evgen.v
      Junior Member
      • May 2016
      • 2

      #3
      SNMP отдает значение в виде целого числа
      Code:
      # snmpget -c public -v 1 10.30.0.50 PLANAR-itm18-MIB::preBER.1
      PLANAR-itm18-MIB::preBER.1 = Counter32: 100
      В итеме тип информации выбран "Числовой (с плавающей точкой)"
      Last edited by evgen.v; 10-05-2016, 15:40.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Originally posted by evgen.v
        SNMP отдает значение в виде целого числа
        Code:
        # snmpget -c public -v 1 10.30.0.50 PLANAR-itm18-MIB::preBER.1
        PLANAR-itm18-MIB::preBER.1 = Counter32: 100
        В итеме тип информации выбран "Числовой (с плавающей точкой)"

        Numeric (float) - floating point number
        Negative values can be stored.
        Allowed range (for MySQL): -999999999999.9999 to 999999999999.9999 (double(16,4)).

        То есть да, все, что меньше 0.0001 округляется в ноль. Не знаю что и посоветовать. Либо искать другую систему мониторинга, либо домножать на 0.01 и держать остальные нули в уме.

        Comment

        • Evgeniy
          Senior Member
          • May 2012
          • 157

          #5
          Я бы так и оставил, грамотное решение производителя как раз для заббикса :
          - ber удобно оценивать по графику, а "1е-9" заббикс понимает как текстовое, по которому график не построишь;
          - с триггерами тоже все просто, например в выражении ">1000", а в названии вручную прописываете ">1e-5";
          - график всегда будет в положительной области;
          - и т.д.

          Comment

          • yukra
            Senior Member
            • Apr 2013
            • 1359

            #6
            Originally posted by evgeniy
            - ber удобно оценивать по графику, а "1е-9" заббикс понимает как текстовое, по которому график не построишь;
            У меня таких значений нигде нет, но по моей ссылке выше написано:
            starting with zabbix 2.2, receiving values in scientific notation is also supported. E.g. 1e+70, 1e-70.

            Comment

            • Evgeniy
              Senior Member
              • May 2012
              • 157

              #7
              Originally posted by yukra
              У меня таких значений нигде нет, но по моей ссылке выше написано:
              Спасибо за наводку, надо будет попробовать) А то у меня еще с версии 2.0 скрипт, который из "1е-9" степень выдирает, чтобы график построить...

              Comment

              • Evgeniy
                Senior Member
                • May 2012
                • 157

                #8
                Попробовал, действительно поддерживаются. Вот только получается хранятся они также...
                allowed range (for mysql): -999999999999.9999 to 999999999999.9999 (double(16,4)).
                Т.е. получается значения меньше 1е-4 округляются в ноль.
                Может, конечно, и ошибаюсь, но по статистике по нескольким элементам данных получается так...

                Comment

                • glebs.ivanovskis
                  Senior Member
                  • Jul 2015
                  • 237

                  #9
                  Да, Numeric (float) хранится в базе как fixed point число с точностью 0.0001, но сервер оперирует им как полноценным floating point двойной точности.

                  Я бы посоветовал не домножать данные, а хранить их как они есть. Множитель 1e-9 можно держать в уме или загнать в Units. А в триггерном выражении при желании можно пользоваться макросом {$NANO} = 0.000000001 (для удобства).

                  Comment

                  Working...