Entrar ou criar conta

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.

Observabilidade e monitoramento do zero à resiliência com Prometheus e Grafana
Ligado ao treinamento Observabilidade e monitoramento do zero à resiliência com Prometheus e Grafana
Protocolo, não resultado. Esta página descreve como medir. Execução pela engenharia Upnetix: ainda não realizada. Nenhum valor aqui é resultado de medição da Upnetix; os números que valem são os que você obtém na sua bancada.
Pergunta

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

  1. Preparar ambiente

    Instale Prometheus e configure para coletar métricas de um gerador customizado com cardinalidade parametrizável.

  2. Definir cardinalidades

    Escolha pelo menos 5 níveis de cardinalidade (ex: 1k, 10k, 50k, 100k, 200k séries únicas).

  3. Ajustar gerador

    Configure o gerador para expor o número desejado de séries para cada rodada.

  4. Iniciar Prometheus

    Reinicie o Prometheus após cada ajuste de cardinalidade para limpar o cache.

    systemctl restart prometheus
  5. Aguardar estabilização

    Espere 10 minutos para estabilização do uso de memória.

  6. 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)
  7. Repetir para cada cardinalidade

    Repita as etapas para todos os níveis definidos.

  8. 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

  1. fonte oficial · Prometheus (CNCF) (prometheus.io)
  2. fonte oficial · Prometheus (CNCF) (prometheus.io)
Verificação editorial
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
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.