Почему Прометей не подходит для длительного хранения?

#database #time-series #prometheus

Вопрос:

Я рассматриваю возможность использования Prometheus в качестве базы данных временных рядов для хранения данных в течение длительных периодов времени (месяцев или, может быть, даже более года).

Однако в нескольких местах я читал, что Prometheus не подходит для длительного хранения, и в этом случае лучшим решением была бы другая база данных TSDB. Но почему именно он не подходит и в чем минусы его использования в качестве долгосрочного хранилища?

В официальных документах упоминается:

Локальное хранилище Prometheus не предназначено для длительного хранения; внешние решения обеспечивают длительное хранение и долговечность данных.

Но что именно означает «расширенное хранение и долговечность данных» и почему это невозможно с помощью Prometheus?

Ответ №1:

Это дизайнерское решение, и оно в основном связано с объемом проекта/инструмента. Первоначальные авторы в контексте своего варианта использования в SoundCloud решили не создавать распределенный уровень хранения данных, а упростить задачу.

Другими словами: Prometheus заполнит диск, но не будет разделять или копировать данные для вас. Теперь, если у вас есть много различных сред, которые вы хотите отслеживать, создавая сотни тысяч временных рядов и миллионы показателей, это не будет масштабироваться (локальные диски слишком малы, и решение на основе NFS теперь может быть тем, что вам нужно). Таким образом, существуют различные решения, позволяющие объединять и/или дедуплицировать показатели из разных сред.

Здесь важно помнить, что это не недостаток Prometheus, а сознательное решение сосредоточиться на чем-то одном и делать это действительно хорошо и со временем разрабатывать API ( remote_write и remote_read ), которые позволяют другим создавать системы, ориентированные на распределенный/масштабный вариант использования.