Gestion de la cardinalité

Ce qu’est la cardinalité

Le nombre de combinaisons uniques de valeurs de label. Chaque combinaison = une time series distincte dans la TSDB. 10k series ne sont rien, 1M fait mal, 10M met la TSDB à terre.

Les principales sources d’explosion

  1. user_id / session_id dans les labels — des milliers d’utilisateurs × N autres labels = des millions de series
  2. Path HTTP sans templating/users/123/orders au lieu de /users/:id/orders
  3. Timestamps dans les labels — jamais

Comment le trouver

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

Puis pour une métrique suspecte :

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

Plus de 1000 valeurs par label est un red flag.

Le remède

  • Templater le path d’URL (/users/:id/...)
  • Drop les labels sur l’agent via une configuration include/exclude
  • Déplacer user_id vers les logs, pas les métriques