Как значения RRD в дампе базы данных переводятся во входные значения?
У меня проблемы с пониманием значений, которые я сохранил в своей базе данных Round Robin. Я делаю дамп с rrdtool dump mydatabase
и я получаю дамп данных. Я нашел самое последнее обновление и сопоставил его с моим rrd update
команда:
$rrdupdate --template=var1:var2:var3:var4:var5 N:15834740:839964:247212:156320:13493356
В моем дампе с соответствующей отметкой времени я нахожу эти значения:
<!-- 2016-12-01 10:30:00 CST / 1480609800 --> <row><v>9.0950245287e+04</v><v>4.8264158237e+03</v><v>1.4182428703e+03</v><v>8.9785764359e+02</v><v>7.7501969607e+04</v></row>
Первое значение должно быть var1
, Из научной нотации это 90 950,245287, что совсем не соответствует моему входному значению. (Ни один из них не является десятичным.)
Есть ли что-то особенное, что я должен сделать, чтобы иметь возможность конвертировать значения из моего дампа, чтобы получить стандартное значение, которое я ввел?
1 ответ
Я не могу дать вам конкретику для вашего случая, так как вы не показали полное определение вашего файла RRD (внутренние данные, определение DS и т. Д.), Однако...
Значения, хранящиеся в базе данных RRDTool, подлежат нормализации данных и затем преобразуются в скорости (если только DS не имеет тип Gauge, в этом случае предполагается, что они уже являются скоростями).
Нормализация - это когда значения корректируются линейно, чтобы они точно соответствовали временной последовательности, определенной интервалом (который часто составляет 300 секунд).
Если вы хотите, чтобы значения сохранялись в точности так, как вы их записываете, вам нужно установить тип DS на "калибровать" и сделать нормализацию нулевым шагом. Единственный способ сделать последнее - сохранить значения точно на временной границе. Таким образом, если интервал составляет 300 с, сохраните его в 12:00:00, 12:05:00 и т. Д., Иначе значения будут скорректированы.
В уроке Алекса ван ден Богардта содержится гораздо больше информации о нормализации - что это такое и почему это делается.