Ответ
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.