Wissensdatenbank/Performance

Kardinalitätsmanagement

Was Kardinalität ist

Die Anzahl eindeutiger Kombinationen von Label-Werten. Jede Kombination = eine eigene Time Series in der TSDB. 10k Series sind nichts, 1M tut weh, 10M legt die TSDB lahm.

Die Hauptursachen einer Explosion

  1. user_id / session_id in Labels — Tausende Nutzer × N andere Labels = Millionen Series
  2. HTTP-Path ohne Templating/users/123/orders statt /users/:id/orders
  3. Timestamps in Labels — niemals

Wie man es findet

GET /api/v1/orgs/:slug/metrics

Dann für eine verdächtige Metrik:

GET /api/v1/orgs/:slug/metrics/:name/labels

Mehr als 1000 Werte pro Label sind ein Red Flag.

Die Lösung

  • URL-Path templaten (/users/:id/...)
  • Labels am Agenten über Include/Exclude-Konfiguration droppen
  • user_id in Logs verschieben, nicht in Metriken