Как понять основную точку данных (PDP) в базе данных rrdtool?

Если я выгружаю RRD в XML, то в разделе «Состояние PDP» есть три элемента: <last_ds>, <value> и <unknown_sec>. Например:

            <!-- PDP Status -->
            <last_ds>90</last_ds>
            <value>4.2177496500e+03</value>
            <unknown_sec> 184 </unknown_sec>

Теперь, как я понимаю, каждый раз, когда я выполняю "rrd update", я буду обновлять Первичную точку данных (PDP). Похоже, что бы я ни указал в качестве значения для rrdtool update (например, rrdtool update test.rrd "N:abc"), оно отображается как значение для элемента <last_ds>. Однако как рассчитывается число для <value>? Я имею в виду число 4217.7496500 в примере выше. Это что-то среднее? И последнее, но не менее важное: хотя я понимаю, что <unknown_sec> показывает количество секунд, когда значение DS было неизвестно, тогда этот счетчик, кажется, охватывает 280–295 секунд. Как это объяснить? Я имею в виду, например, если я выполняю while true; do rrdtool update test.rrd "N:75"; rrdtool dump test.rrd | grep "<unknown_sec>"; sleep 1; done, где 75 меньше, чем наименьшее значение, разрешенное для этого DS, то вывод будет следующим:

   /* data not shown for brevity */
   <unknown_sec> 280 </unknown_sec>
   <unknown_sec> 281 </unknown_sec>
   <unknown_sec> 282 </unknown_sec>
   <unknown_sec> 0 </unknown_sec>
   <unknown_sec> 1 </unknown_sec>
   <unknown_sec> 2 </unknown_sec>
   /* data not shown for brevity */

person Martin    schedule 30.05.2016    source источник


Ответы (1)


содержимое PDP <value> представляет собой сумму всех продуктов входного значения, умноженную на продолжительность, в течение которой это значение было действительным. Чтобы построить PDP, в конце интервала это значение делится на продолжительность интервала минус количество неизвестных секунд... Количество неизвестных секунд сбрасывается до 0 при запуске нового интервала...

person Tobi Oetiker    schedule 30.05.2016