Ad Widget

Collapse

Разница между delta и last

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • turboon
    Member
    • Sep 2010
    • 93

    #1

    Разница между delta и last

    Здравствуйте. Можете мне подсказать, каким образом zabbix вычисляет дельту между значениями элемента данных?
    Например:
    1. Элемент net.if.in[eth0, bytes], храним значения как есть
    2. Вычисляемый элемент last("net.if.in[eth0, bytes]"), значения хранятся по дельте( простое изменение )
    3. Вычисляемый элемент last("net.if.in[eth0, bytes]") - last("net.if.in[eth0, bytes]", #2), значения хранятся как есть

    Обновление значений всех элементов 5 секунд.

    По идее, значения элементов 2 и 3 должны совпадать, ну или хотя бы следовать друг за другом по ходу обновления. Но у меня их показания часто не совпадают. Бывает так, что 2-й равен нулю, а 3-й показывает какие-то значения. Из этого возникают два вопроса - почему? и что точнее для измерения количества байтов, прошедших через интерфейс за отрезок времени?
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Что-то Вы намудрили.
    net.if.in[eth0, bytes] можно хранить в один момент времени либо как простое изменение, как есть, дельта (скорость в секунду). Как Вы создали несколько Item, c разными ключами?
    Самый простой способ проверки
    C Zabbix сервера запускать из cron каждые 5 сек скрипт и писать результат в файл.
    zabbix_get -s IP -k net.if.in[eth0, bytes]
    Вы получите значения как есть, а дальше сравнивать.
    P.S. И не забывайте про можитель 8 в случае bps
    Last edited by dima_dm; 23-09-2010, 13:39.

    Comment

    • turboon
      Member
      • Sep 2010
      • 93

      #3
      Хм. Понимаю, конечно, что слегка намудрил.
      Попробую растолковать.
      Стоит задача смотреть данные как по количеству траффика, так и по загруженности интерфейса за промежуток времени.
      1. Первый item - данные по кол-ву траффика. Ключ net.if.in[eth0, bytes]. Хранятся значения как есть. Тут должно быть все понятно.
      2. Второй item - тип: подсчитываемое, формула last("net.if.in[eth0, bytes]"). Хранятся значения по дельте (изменение)
      3. Третий item сделан для проверки второго - тип: подсчитываемое, формула last("net.if.in[eth0, bytes]") - last("net.if.in[eth0, bytes]", #2). Хранятся значения как есть.

      net.if.in[eth0, bytes] можно хранить в один момент времени либо как простое изменение, как есть, дельта (скорость в секунду). Как Вы создали несколько Item, c разными ключами?
      Если бы значение с одним ключом можно было хранить несколькими разными способами, то вопросов бы не стояло.
      Да, ключи у всех трех, конечно, разные.

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Я думаю, что все ваши проблемы из-за частого обновления Item (5 сек), поставьте 300 сек, и посмотрите результат. И связаны с задержками попадания собранных данных в базу и ответами zabbix_agentd.
        Last edited by dima_dm; 23-09-2010, 14:40.

        Comment

        • turboon
          Member
          • Sep 2010
          • 93

          #5
          Не помогло

          Сделал по Вашему совету.
          Для элемента 1 поставил интервал 300 сек, для 2-го и 3-го по 100 сек.
          Ситуации это не исправило, к сожалению.

          У меня элемент 3 как раз является дельтой 2-го. Стало быть, они должны быть равны. Но увы! Совпадают лишь иногда. Заметил даже интересную особенность - когда траффик не идет через интерфейс, эл-т 2-й показывает 0, а 3-й упорно держит какие-то цифры.

          Опять таки, непонятно, как zabbix считает дельту между значениями элемента.
          Дельта по изменению last(key) равна last(key)-last(key,#2), или же нет?

          Comment

          • dima_dm
            Senior Member
            • Dec 2009
            • 2697

            #6
            Смысл ставить для 2-го и 3-го по 100 сек, когда новые значения приходят раз в 300 сек?
            Вы же можете посмотреть на закладке Мониторинг-> Последние данные 500 последних значений Item и увидеть, где проблема.

            Comment

            • turboon
              Member
              • Sep 2010
              • 93

              #7
              Они же обновляются не одновременно!
              Так как 2-й и 3-й используют данные, полученные 1-м, то при одинаковом интервале не исключена такая ситуация:
              1. Обновляется 2-й, забирая last(key) из данных, собранных 1-м
              2. Обновляется 1-й
              3. Обновляется 3-й, забирая уже новые данные, собранные 1-м

              В этом случае 2-й и 3-й будут равны только при большом везении

              Comment

              • dima_dm
                Senior Member
                • Dec 2009
                • 2697

                #8
                Почему? Они будут идентичны, возможно со сдвигом на один интервал опроса. Но Вы опять же это можете увидеть на Мониторинг-> Последние, но уже для вычислемых Item.
                Last edited by dima_dm; 23-09-2010, 15:43.

                Comment

                • turboon
                  Member
                  • Sep 2010
                  • 93

                  #9
                  Как раз с этим сдвигом я и боролся, установив меньший интервал для подсчитываемых элементов. В этом случае 2-й и 3-й гарантированно обновятся с одних данных 1-го.

                  Почему? Они будут идентичны, возможно со сдвигом на один интервал опроса.
                  В том то и дело, что они не идентичны!

                  Comment

                  • dima_dm
                    Senior Member
                    • Dec 2009
                    • 2697

                    #10
                    Ничего подобного. Сначала может обновиться 2-й item, потом придут новые данные 1-й Item, затем обновиться 3-й Item. Никакой разницы нет.

                    Comment

                    • turboon
                      Member
                      • Sep 2010
                      • 93

                      #11
                      Верно

                      Чертовски верно подмечено
                      Согласен с Вами. Да и zabbix мой тоже вдруг стал согласен. Я только поставил интервал на дельту равным интервалу 1-го элемента.
                      Спасибо.

                      Comment

                      Working...