Skip to content
Latchkey

O Que É Cardinalidade em Métricas? A Explosão de Séries Explicada

Cardinalidade em métricas é o número de séries temporais distintas que uma métrica gera, determinado por quantas combinações únicas de valores de labels existem.

Cardinalidade é o conceito que mais frequentemente derruba um sistema de métricas, e o que os iniciantes menos esperam. Cada conjunto único de labels em uma métrica cria uma série temporal separada para armazenar e consultar. Adicione o label errado e essa contagem explode de centenas para milhões, com sérias consequências de custo e desempenho.

O que significa cardinalidade

Uma métrica com labels produz uma série temporal por combinação única de valores de labels. Uma métrica de contagem de requisições rotulada por método e código de status, com poucos valores de cada, pode ser algumas dezenas de séries. Cardinalidade é simplesmente essa contagem total de séries distintas, e ela cresce de forma multiplicativa com cada dimensão de label.

Como ela explode

O problema surge de labels de alta variedade. Adicione um user ID, um request ID ou uma URL bruta como label, e cada valor único cria sua própria série. Um label com um milhão de valores possíveis multiplica sua contagem de séries por um milhão. Essa é a explosão de cardinalidade que sobrecarrega os backends de métricas.

Por que alta cardinalidade é cara

Cada série temporal consome memória e armazenamento e precisa ser indexada. À medida que a cardinalidade cresce, a ingestão fica mais lenta, as consultas ficam caras e o próprio sistema de monitoramento pode cair. A alta cardinalidade é a principal causa de sistemas de métricas se tornarem lentos, não confiáveis ou inviáveis financeiramente.

Controlando a cardinalidade

A disciplina é manter os labels com pouca variedade: use valores limitados e enumeráveis como código de status ou região, e nunca coloque identificadores sem limites em labels de métricas. Quando você realmente precisar de detalhe por entidade, isso pertence a logs ou a ferramentas de eventos amigáveis a alta cardinalidade, não a métricas.

Cardinalidade em métricas de CI/CD

A mesma armadilha se aplica a métricas de pipeline. Rotular uma métrica de build por dimensões estáveis, repository, workflow, tipo de runner, é adequado; rotulá-la por commit SHA ou run ID cria uma nova série para cada build e explode a cardinalidade. Mantenha os labels de métricas de pipeline limitados e envie identificadores únicos para os logs.

Principais conclusões

  • Cardinalidade é a contagem de séries temporais únicas geradas por combinações de labels.
  • Labels sem limites, como IDs, causam uma explosão de cardinalidade.
  • Alta cardinalidade eleva o custo e degrada os sistemas de métricas.
  • Mantenha os labels com pouca variedade; coloque IDs únicos em logs, não em métricas.

Guias relacionados