В каких системах обычно хранятся и обрабатываются метрики в DevOps-стеке?

«В каких системах обычно хранятся и обрабатываются метрики в DevOps-стеке?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Метрики, как временные ряды данных, хранятся в специализированных Time-Series Databases (TSDB), оптимизированных для записи и чтения последовательностей значений с временными метками.

Популярные TSDB в экосистеме DevOps:

Система Тип Ключевые особенности
Prometheus Pull-модель, standalone TSDB Встроенное хранилище (локальный SSD), мощный язык запросов PromQL, активно развиваемая экосистема. Для долгосрочного хранения требуется связка с Thanos/Cortex/VictoriaMetrics.
VictoriaMetrics Drop-in замена/расширение Prometheus Высокая производительность и эффективное использование памяти, совместимость с PromQL, встроенная долгосрочное хранение.
InfluxDB Push-модель (чаще), standalone Свой язык запросов Flux/InfluxQL, акцент на high-throughput, коммерческая и open-source версии.
TimescaleDB Расширение PostgreSQL Использует реляционную модель, SQL для запросов, хороша при необходимости JOIN с бизнес-данными.
M3DB (Uber), Thanos, Cortex Распределённые системы хранения Решения для масштабирования и глобальной агрегации метрик, часто используются как бэкенд для Prometheus.

Типичный стек на основе Prometheus:

  1. Сбор: Prometheus scrape-ит метрики с экспортеров (node_exporter, application metrics).
  2. Краткосрочное хранение: Локальное TSDB Prometheus (удерживает данные 15-30 дней).
  3. Долгосрочное хранение: VictoriaMetrics или Thanos Object Storage (S3) для хранения лет истории.
  4. Визуализация: Grafana, подключающаяся к Prometheus/VictoriaMetrics как источнику данных.

Пример метрики в формате Prometheus:

# TYPE http_requests_total counter
http_requests_total{method="POST", handler="/api", status="200"} 2547
http_requests_total{method="GET", handler="/health", status="200"} 12345