На какой модели данных основан Prometheus

Ответ

Prometheus использует собственную базу данных временных рядов (Time Series Database, TSDB). Эта модель идеально подходит для хранения метрик, так как данные представляют собой последовательность значений, привязанных к уникальным временным меткам.

Ключевые особенности этой модели:

  • Структура данных: Каждая метрика определяется уникальным именем и набором пар ключ-значение, называемых метками (labels). metric_name{label1="value1", label2="value2"}
  • Хранение: Данные записываются на локальный диск. Сначала они попадают в WAL (Write-Ahead Log) для надежности, а затем сжимаются в блоки для долгосрочного и эффективного хранения.
  • Многомерность: Метки позволяют гибко фильтровать, группировать и агрегировать данные с помощью языка запросов PromQL. Это основное преимущество перед иерархическими моделями.

Пример временного ряда:

Запись показывает, что в момент времени 1625070000 было зафиксировано 42 HTTP-запроса с методом POST и статусом 200.

http_requests_total{method="POST", status="200"} 42 1625070000

Для долгосрочного хранения данных Prometheus часто интегрируют с внешними системами, такими как Thanos, VictoriaMetrics или Cortex.