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.