Wissensdatenbank/Grundlagen

Was ist eine Time-Series-Datenbank (TSDB)

Eine Time-Series-Datenbank (TSDB) ist eine Datenbank, die für das Speichern und Abfragen von Zeitreihen optimiert ist: Folgen von Werten mit Zeitstempeln. Monitoring baut darauf auf — jede Metrik ist eine Reihe von „Zeit → Wert“-Punkten.

Wie sich eine TSDB von einer normalen Datenbank unterscheidet

  • Daten werden fast immer angehängt (Append), nicht aktualisiert — das erlaubt aggressive Komprimierung.
  • Abfragen erfolgen fast immer über einen Zeitbereich mit Aggregation: „durchschnittliche CPU über Instanzen in der letzten Stunde“.
  • Alte Daten werden günstiger: sie werden heruntergerechnet (Downsampling) oder per Retention gelöscht.

Schlüsselbegriffe

  • Serie — eine eindeutige Kombination aus Metrikname und Label-Set, z. B. http_requests_total{job="api", code="500"}.
  • Kardinalität — die Anzahl eindeutiger Serien. Hohe Kardinalität (z. B. ein user_id-Label) bläht Speicher und Kosten auf.
  • Scrape / Ingest — das Intervall, in dem neue Punkte eintreffen.
  • Retention — wie lange Rohpunkte aufbewahrt werden.

Beispiele für TSDBs

Prometheus, VictoriaMetrics, Thanos, Mimir, InfluxDB, TimescaleDB. Unimoni nutzt einen Prometheus-kompatiblen Speicher, daher werden Abfragen in PromQL geschrieben.

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

Was in der Praxis zählt

Achten Sie auf die Kardinalität: legen Sie keine Werte mit hoher Streuung (user_id, request_id, vollständige URL) in Labels. Das ist der Hauptgrund, warum Monitoring „teuer“ und langsam wird.