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, но база данных должна быть пустой, так как я попытался удалить ее и заново создать.

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам