Ответ
В контексте 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'