Назад | Перейти на главную страницу

rrdtool: незаконная попытка обновления

Я пытаюсь прочитать "исторические" данные из текстового файла и сохранить в rrdtool для построения графика позже.

Я создал новую (пустую) базу данных rrd с

$ rrdtool create monitor_db.rrd --step 900 DS:col1:GAUGE:900:0:1000 DS:col2:GAUGE:3600:0:1000 RRA:MAX:0.5:1:1500

Затем я пытаюсь обновить базу данных, но получаю сообщение об ошибке

$ rrdtool update monitor_db.rrd --template col1:col2 1404249680:2:3
ERROR: monitor_db.rrd: illegal attempt to update using time 1404249680 when last update time is 1422146997 (minimum one second step)

Отметка времени, rrdtool clains - время последнего обновления, 1422146997, сейчас, и я пытаюсь вставить данные примерно полгода назад.

Я понимаю, что вам необходимо вставить данные в хронологическом порядке, чтобы rrdtool, но база данных должна быть пустой, так как я пытался удалить ее и создать заново.

Rrdtool create имеет --start вариант, который делает то, что вам нужно, без изменения времени для всей системы. По умолчанию 10 секунд назад.

Перед созданием базы данных мне нужно было изменить системное время.

  1. Установите системное время так, чтобы оно было раньше первой отметки времени в моем наборе данных. В моем случае: 1404249680 (2014-07-02T21:21 в формате ISO).
  2. Создайте базу данных с помощью rrdtool create.
  3. Восстановите системное время до нормального.
  4. Обновите базу данных с помощью rrdtool update.

Редактирование атрибутов файла с помощью touch -d было недостаточно, дата начала, вероятно, хранится где-то в файле базы данных.