В первой части скрипта я собираю статистические данные в переменные. Так с ними удобнее работать, дебажить и т.п. От дебага остался и rm, которым я пересоздавал БД rrdtool. Далее, если файл БД не существует, то он создается. Удобно держать скрипт готовым к неожиданностям. Я его частично срисовал с оптимизаторского, поэтому в нем учитывается отсутствие БД. Создается БД командой
rrdtool create, в результате которой появляется единственный файлик, довольно скромных размеров. Строка с timestamp появилась в результате обхода несколько непонятной фичи, связанной с учетом суток (86400 секунд), если не начать БД правильно, в нее не попадают значения при таком интервале, убил на это уйму времени, никак не мог понять, почему. Step, т.е. шаг в моей БД равен 86400 секундам, т.е. раз в сутки я буду класть в нее данные по загрузке предыдущих 24 часов.
Разберем типовой шаблон:
Цитата: DS:all:GAUGE:172800:U:U \
RRA:LAST:0.5:1:732 \
первая строчка описывает источник с именем all. Этот источник не накопительный, поэтому GAUGE, а не COUNTER. К первому типу относят, например, температуру, ко второму - количество посетителей форума с момента его создания. Поскольку я анализирую посетителей за 24 часа, то сегодня их может быть 2000, завтра 1000, т.е. значения колеблются в обе стороны. Цифра 172800 обозначает период за который данных может не быть, прежде чем в графике появится дырка. В моем случае это 2 суток. Две буквы U обозначают, что мне неизвестны минимальные и максимальные значения данных. В противном случае их бы лучше было указать. Далее идет строчка описания архива. Из нее следует простой вывод, что хранится 1 значение, будет использовано LAST - последнее и всего будет 732 ячейки (помня про интервал в сутки, получим приблизительно два года). Вот и повторяем этот шаблон для разных запоминаемых параметров...