Специально для формата XML файлов RRD нет документации, но ее можно получить из документации по двоичному формату RRD следующим образом:
это руководство составлено на основе информации со следующих сайтов:
См. Также документацию на веб-сайте rrdtool.
Основная структура XML-файла RRD:
<rrd> <version /> <step /> <lastupdate />
<ds> <name /> <type /> <step /> <minimal_heartbeat /> <min /> <max /> <last_ds /> <value /> <unknown_sec /> </ds> ...
<rra> <cf /> <pdp_per_row /> <xff />
<cdp_prep> <ds> <value /> <unknown_datapoints /> </ds> ... <cdp_prep>
<database> <row> <v /> ... </row> ... </database>
</rra>...
</rrd>
В этом специальном определении синтаксиса я использовал многоточие (...), чтобы указать, что мощность элемента равна 1 или более.
Эту структуру можно описать следующим образом: каждая база данных циклического обслуживания (<rrd>) имеет один или несколько источников данных (<ds>) и один или несколько архивов циклического обслуживания (<rra>). Каждый <rra> содержит базу данных (<database>), которая имеет несколько строк (<row>). Каждая <строка> имеет несколько значений (<v>), количество которых соответствует количеству источников данных (<ds>), определенных для <rrd>.
Элемент Data Source (<ds>) определяет характеристики данных каждого источника данных (DS), который будет отслеживаться:
- <name>: произвольное текстовое имя для DS
- <step>: частота дискретизации в секундах для сбора данных. Предполагается, что каждая первичная точка данных (PDP) хранит данные в момент времени точно в секундах с момента последнего PDP. Если не указано, используется значение по умолчанию 300.
- <type>: тип полученного измерения - {COUNTER | ПРОИЗВОДНАЯ | АБСОЛЮТ | GAUGE} DS, объявленный как COUNTER, сохранит скорость изменения значения за период шага. Это предполагает, что значение всегда увеличивается (разница между текущим и предыдущим значением больше 0). Счетчики трафика на маршрутизаторе - идеальный кандидат для использования COUNTER в качестве DST. DERIVE - то же самое, что и COUNTER, но также допускает отрицательные значения. Если вы хотите увидеть скорость изменения свободного дискового пространства на вашем сервере, вы можете использовать тип данных DERIVE. ABSOLUTE также сохраняет скорость изменения, но предполагает, что предыдущее значение установлено на 0. Разница между текущим и предыдущим значениями всегда равна текущему значению. GAUGE не сохраняет скорость изменения. Он сохраняет само фактическое значение. Нет никаких делений или расчетов. Потребление памяти на сервере - типичный пример измерителя.
- <minimal_heartbeat>: максимальное время (в секундах), в течение которого мы можем обходиться без обновления. Например, если minimum_heartbeat = 120 и мы проходим более 120 секунд, не слыша значения, тогда для первичных точек данных для этого интервала устанавливается значение UNKNOWN.
- <min>: минимальное записываемое значение для источника данных
- <max>: максимальное записываемое значение для источника данных
- <last_ds>: ??
- <значение>: ??
Элемент Round Robin Archive (<rra>) определяет характеристики измерения каждого архива в RRD.
Архив состоит из ряда значений данных или статистики для каждого из определенных источников данных (DS). Элементами <rra> являются:
- <cf>: функция консолидации архива - {AVERAGE | МИН | МАКС | ПОСЛЕДНИЙ }. PDP объединяются или фильтруются на основе функции консолидации.
- <pdp_per_row>: количество PDP, которые будут составлять записанное значение. Если pdp_per_row больше 1, PDP будут агрегированы или отфильтрованы на основе <cf>. Произведение <pdp_per_row> и DS <step> дает частоту дискретизации в секундах для каждой записи в <rra>. Например, если DS <step> = 300 и <pdp_per_row> = 6, частота дискретизации для <rra> = 1800 секунд.
- <xff>: «Фактор XFiles (XFF)». Процент PDP, которые могут быть неизвестны без сохранения неизвестного записанного значения.
- <cdp-prepare>: ??
- <база данных>: данные, хранящиеся в <rra>. <Database> состоит из нескольких элементов <row>, каждый из которых имеет количество элементов <v>, равное количеству элементов источника данных (<ds>), определенных для <rrd>. Элементы <v> хранят выборочные данные, которые записываются в файл RRD вызовом функции rrdupdate - другими словами, данные, созданные инструментом мониторинга, с которым взаимодействует RRD.
Есть несколько элементов, которым я не смог найти объяснения. Они отмечены ??.
Если вы изучите XML, созданный rrddump, и получите базовые знания о том, как работает rrdtool, этот формат будет достаточно самоописывающим. Мне ничего не известно о документации.