Что такое time-series база данных (TSDB)

Time-series database (TSDB) — это база данных, оптимизированная под хранение и запросы временных рядов: последовательностей значений с метками времени. На таких базах строится мониторинг — каждая метрика это ряд точек «время → значение».

Чем TSDB отличается от обычной СУБД

  • Данные почти всегда добавляются (append), а не обновляются — это позволяет агрессивно сжимать.
  • Запросы почти всегда по диапазону времени с агрегацией: «средний CPU по инстансам за последний час».
  • Старые данные дешевеют: их прореживают (downsampling) или удаляют по retention.

Ключевые понятия

  • Серия (series) — уникальная комбинация имени метрики и набора лейблов, например http_requests_total{job="api", code="500"}.
  • Кардинальность — число уникальных серий. Высокая кардинальность (например, лейбл с user_id) раздувает память и стоимость.
  • Скрейп / ingest — интервал, с которым приходят новые точки.
  • Retention — как долго хранятся сырые точки.

Примеры TSDB

Prometheus, VictoriaMetrics, Thanos, Mimir, InfluxDB, TimescaleDB. Unimoni использует Prometheus-совместимое хранилище, поэтому запросы пишутся на PromQL.

sum(rate(http_requests_total[5m])) by (code)

Что важно на практике

Следите за кардинальностью: не кладите в лейблы значения с высоким разбросом (user_id, request_id, полный URL). Это главная причина «дорогого» и медленного мониторинга.