Что такое 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). Это главная причина «дорогого» и медленного мониторинга.