Upnetix Labs · protocolo de experimento
Protocolo: Qual o impacto da cardinalidade de métricas no consumo de memória do Prometheus?
Este protocolo investiga como o aumento da cardinalidade de métricas afeta o uso de memória do Prometheus. O objetivo é medir o consumo de RAM ao variar o número de séries temporais únicas.

Como o consumo de memória do Prometheus varia conforme a cardinalidade das métricas coletadas?
Hipótese
Aumentar a cardinalidade de métricas eleva linearmente o consumo de memória do Prometheus.
Variáveis
| Independentes (o que varia) | número de séries temporais únicas (cardinalidade) |
|---|---|
| Dependentes (o que se mede) | consumo de memória RAM do processo Prometheus (MB) |
| Controladas (o que fica fixo) | versão do Prometheus; configuração de scrape; intervalo de coleta; hardware; sistema operacional; tempo de execução |
Ambiente
Servidor Linux dedicado, Prometheus instalado conforme documentação oficial, gerador de métricas como https://github.com/prometheus/prometheus/tree/main/documentation/examples/remote_storage/remote_storage_adapter ou similar, ferramenta de coleta de uso de memória (ps, top, ou Prometheus self-metrics).
Procedimento
- Preparar ambiente
Instale Prometheus e configure para coletar métricas de um gerador customizado com cardinalidade parametrizável.
- Definir cardinalidades
Escolha pelo menos 5 níveis de cardinalidade (ex: 1k, 10k, 50k, 100k, 200k séries únicas).
- Ajustar gerador
Configure o gerador para expor o número desejado de séries para cada rodada.
- Iniciar Prometheus
Reinicie o Prometheus após cada ajuste de cardinalidade para limpar o cache.
systemctl restart prometheus - Aguardar estabilização
Espere 10 minutos para estabilização do uso de memória.
- Medir uso de memória
Registre o consumo de RAM do Prometheus via comando do sistema ou métrica process_resident_memory_bytes.
ps -o rss= -p $(pgrep prometheus) - Repetir para cada cardinalidade
Repita as etapas para todos os níveis definidos.
- Repetir experimento
Execute o ciclo completo 5 vezes para cada cardinalidade, reiniciando o Prometheus a cada rodada.
Planilha de coleta
| cardinalidade (séries únicas) | memoria_mb (MB) | rodada (número) |
|---|---|---|
| EXEMPLO: 10000, 512, 3 | ||
Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.
Análise
Calcule média, desvio padrão e mediana do uso de memória para cada cardinalidade. Analise a relação entre cardinalidade e memória, buscando linearidade ou pontos de inflexão. Compare os resultados com a documentação oficial.
Critérios de decisão
- Consumo de memória cresce proporcionalmente à cardinalidade.
- Desvio padrão entre repetições não excede 10%.
- Sem erro de coleta (valores nulos ou negativos).
Fontes de erro e mitigação
- Cache residual do Prometheus: sempre reiniciar entre rodadas.
- Outros processos no sistema: isolar ambiente ou monitorar ruído.
- Tempo de estabilização insuficiente: garantir espera mínima após reinício.
Referências
- fonte oficial · Prometheus (CNCF) (prometheus.io)
- fonte oficial · Prometheus (CNCF) (prometheus.io)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 2 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
