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.