Я собираю некоторые системные данные в файле flatfile, который имеет этот формат:
YYYY-MM-DD-HH24:MI:SS DD1 DD2 DD3 DD4
Где DD1-DD4 - это четыре элемента данных. Пример файла:
2011-02-01-13:29:53 16 8 7 68
2011-02-01-13:29:58 13 8 6 110
2011-02-01-13:30:03 26 25 1 109
2011-02-01-13:30:08 13 12 1 31
2011-02-01-13:30:14 192 170 22 34
2011-02-01-13:30:19 16 16 0 10
2011-02-01-13:30:24 137 61 76 9
2011-02-01-13:30:29 452 167 286 42
2011-02-01-13:30:34 471 177 295 11
2011-02-01-13:30:39 502 192 309 10
Файл содержит более 2 миллионов строк с точками данных каждые пять секунд.
Мне нужно начертить эти данные, чтобы получить от него смысл.
Что я пробовал
В настоящий момент я пробовал gnuplot и rrdtool с различными инструментами unix (awk, sed и т.д.). Обе эти работы, но, похоже, требуют много измельчения и повторения данных каждый раз, когда я хочу просмотреть его по-другому. Я чувствую, что rrdtool - это правильный путь, но на данный момент я изо всех сил пытаюсь получить данные в этом достаточно быстро, отчасти потому, что мне нужно преобразовать свою временную метку в эпоху Unix. Я также понимаю, что если я решила, что хочу новую гранулярность агрегации, мне нужно перестроить rrd (что имеет смысл для сбора в реальном времени, но не для ретроспективных нагрузок, подобных этому). Эти вещи заставляют меня думать, может быть, я использую неправильный инструмент.
Сбор данных в плоский файл фиксирован - например, я не могу напрямую передать коллекцию в rrdtool.
Мой вопрос
Я бы хотел, чтобы мнения людей касались наилучшего способа создания диаграмм. У меня есть следующие требования:
- Это должно быть как можно быстрее, чтобы создать график (а не просто визуализировать, но настроить для рендеринга тоже)
- Он должен быть как можно более гибким - мне нужно гасить вокруг, чтобы графики работали (5 секунд, вероятно, слишком зернистые)
- Он должен иметь возможность суммировать (MAX/AVG/etc), где необходимо
- Это должны быть повторяемые и новые файлы данных, поскольку они входят в
- В идеале я хочу иметь возможность накладывать DD1 на DD2 или DD1 на прошлой неделе с DD1 на этой неделе.
- Unix или Windows, все равно. Предпочитаю * nix, хотя: -)
Любые предложения?