Какие Time Series базы данных ты знаешь?

«Какие Time Series базы данных ты знаешь?» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В контексте DevOps и мониторинга инфраструктуры я чаще всего работал со следующими TSDB:

  • Prometheus — основной выбор для мониторинга контейнеров и микросервисов. Использует pull-модель сбора метрик и мощный язык запросов PromQL. Хранит данные на диске в собственном формате. Пример целевого использования — мониторинг Kubernetes-кластера через экспортеры (node-exporter, kube-state-metrics).
  • InfluxDB — высокопроизводительная TSDB, часто используется в связке с Telegraf (агентом для сбора метрик). Поддерживает язык запросов Flux и InfluxQL. Хорошо подходит для метрик IoT и бизнес-аналитики.
  • TimescaleDB — расширение PostgreSQL для работы с временными рядами. Главное преимущество — полная поддержка SQL и возможность JOIN с обычными реляционными данными. Использовал его для проектов, где требовались сложные аналитические запросы поверх исторических метрик.
  • VictoriaMetrics — оптимизированная, быстрая и экономичная TSDB, совместимая с PromQL. Часто выбираю её для продакшена из-за высокой производительности и меньшего потребления ресурсов по сравнению с "ванильным" Prometheus, особенно при больших объёмах данных.
  • Graphite — классическое, простое решение (Carbon для приёма данных, Whisper для хранения). Работал с ним в legacy-системах. Сейчас его часто используют в паре с Grafana для визуализации, в то время как сбор метрик переведён на более современные инструменты.

Пример записи метрики в InfluxDB через cURL (как при отладке интеграции):

curl -i -XPOST 'http://localhost:8086/write?db=monitoring' 
--data-binary 'server_uptime,host=web-prod-01,region=eu-central value=86400'