Вы можете абсолютно хранить данные за несколько лет в Graphite, проблема, с которой вы столкнетесь, заключается в том, что Graphite выбирает уровень агрегации для чтения, находя архив с самым высоким разрешением, который охватывает запрошенный интервал, так что вы можете автоматически использовать преимущества агрегации, чтобы иметь эффективные долгосрочные графики и возможность переходить к необработанным данным за определенный период времени в прошлом.
Одним из способов решения этой проблемы является использование агрегатора углерода для генерации нескольких выходных рядов с разными интервалами от входных рядов, чтобы вы могли иметь my.metric.raw
, my.metric.10min
, my.metric.1hr
и т. Д. что с углеродной схемой, которая определяет интервал сопоставления и время хранения для каждой серии, поэтому my.metric.raw
сохраняется с разрешением в 1 секунду, .1min
- через 1 минуту и т. д.
Если вы сделаете это, то в Grafana вы можете использовать переменную шаблона, чтобы выбрать интервал, из которого вы хотите построить график, поэтому вы определите переменную $aggregation
с параметрами raw
, 10min
и т. Д. И напишите свой запросы типа my.metric.$aggregation
.
Это даст вам необходимую производительность с возможностью углубления в необработанные данные.
Тем не менее, мы обычно находим, что, хотя все думают, что им нужно много исторических данных с высокой степенью детализации, они практически никогда не используются и обычно являются ненужными расходами. Это может быть не так, но подумайте о реальных случаях использования при проектировании системы.