Qu’est-ce qu’une base de données time-series (TSDB)
Une base de données time-series (TSDB) est une base optimisée pour stocker et interroger des séries temporelles : des suites de valeurs horodatées. Le monitoring se construit dessus — chaque métrique est une série de points « temps → valeur ».
En quoi une TSDB diffère d’une base classique
- Les données sont presque toujours ajoutées (append), pas mises à jour — ce qui permet une compression agressive.
- Les requêtes portent presque toujours sur une plage de temps avec agrégation : « CPU moyen sur les instances la dernière heure ».
- Les anciennes données coûtent moins cher : on les sous-échantillonne (downsampling) ou on les supprime par rétention.
Notions clés
- Série — une combinaison unique d’un nom de métrique et d’un ensemble de labels, p. ex.
http_requests_total{job="api", code="500"}. - Cardinalité — le nombre de séries uniques. Une cardinalité élevée (p. ex. un label user_id) gonfle la mémoire et le coût.
- Scrape / ingest — l’intervalle auquel arrivent les nouveaux points.
- Rétention — combien de temps les points bruts sont conservés.
Exemples de TSDB
Prometheus, VictoriaMetrics, Thanos, Mimir, InfluxDB, TimescaleDB. Unimoni utilise un stockage compatible Prometheus, donc les requêtes s’écrivent en PromQL.
sum(rate(http_requests_total[5m])) by (code)Ce qui compte en pratique
Surveillez la cardinalité : ne mettez pas de valeurs à forte variance (user_id, request_id, URL complète) dans les labels. C’est la principale raison pour laquelle le monitoring devient « cher » et lent.