Marcio Cunha

Coleta e Agregação de Métricas em Escala com Prometheus Thanos

Descubra como o Thanos resolve as limitações de armazenamento e retenção de dados do Prometheus em ambientes distribuídos. Um guia prático sobre arquitetura de observabilidade em larga escala.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • O Prometheus armazena dados localmente em formato de séries temporais, o que gera gargalos de disco e perda histórica quando o volume de métricas cresce exponencialmente.
  • O ecossistema Thanos se conecta diretamente às instâncias do Prometheus sem exigir alterações drásticas na infraestrutura atual de coleta.
  • A replicação e compactação de blocos históricos para object storage reduzem drasticamente os custos operacionais de armazenamento em nuvem.
  • A execução de consultas federadas e globais permite cruzar dados de múltiplos datacenters em uma única interface unificada.
  • A alta disponibilidade exige planejamento cuidadoso na distribuição de componentes como Thanos Querier e Sidecar para evitar pontos únicos de falha.

O Desafio do Crescimento de Dados na Observabilidade

Monitorar sistemas modernos exige coletar milhares de métricas a cada segundo, como uso de CPU, memória, requisições por minuto e latência. O Prometheus tornou-se o padrão da indústria para essa tarefa, gravando tudo isso em um banco de dados local otimizado para séries temporais. Na prática, isso significa que cada servidor guarda seus próprios registros em discos locais, focando na velocidade de gravação e consulta rápida em tempo real.

No entanto, essa abordagem de armazenamento local cria um limite físico evidente: o espaço em disco. Conforme a infraestrutura escala e centenas de microserviços entram em produção, o volume de dados explode. As equipes se veem obrigadas a escolher entre descartar o histórico antigo ou gastar uma fortuna mantendo discos SSD massivos acoplados a cada instância do Prometheus.

Como o Thanos Conecta o Prometheus ao Armazenamento de Longo Prazo

O Thanos surge exatamente para resolver esse dilema, funcionando como um conjunto de componentes que estendem as capacidades do Prometheus sem substituí-lo. Ele introduz o conceito de descarregar dados antigos para serviços de armazenamento em nuvem de baixo custo, como Amazon S3, Google Cloud Storage ou storages compatíveis com a API S3. Na prática, o Prometheus continua coletando normalmente, mas um processo auxiliar chamado Sidecar envia blocos compactados de dados para a nuvem de forma contínua.

Essa separação entre computação e armazenamento transforma completamente a dinâmica de custos e retenção. Em vez de manter anos de histórico em discos caros de servidores rodando 24 horas por dia, os dados frios repousam em object storage, cujo custo por gigabyte é centenas de vezes menor. Quando alguém precisa consultar um evento ocorrido meses atrás, o sistema busca apenas os blocos necessários sob demanda, equilibrando economia e disponibilidade operacional.

Arquitetura e Componentes Principais do Ecossistema

Para entender o funcionamento interno do Thanos, é preciso olhar para seus componentes modulares e entender o papel de cada peça no quebra-cabeça. O Sidecar roda lado a lado com o Prometheus, fazendo o upload dos blocos de dados e permitindo consultas em tempo real aos dados locais mais recentes. O Querier atua como um maestro, recebendo consultas dos usuários e buscando as informações tanto no Sidecar quanto no armazenamento de longo prazo de forma transparente.

Além deles, o Compactor roda em segundo plano unindo blocos de dados menores em blocos maiores e aplicando políticas de retenção e downsampling, que reduzem a precisão dos dados antigos para economizar largura de banda e memória. Outro componente essencial é o Store Gateway, que funciona como uma ponte inteligente entre o armazenamento em nuvem e o Querier, indexando e servindo os dados históricos armazenados remotamente sem precisar baixá-los por completo.

Passo a Passo para Implementar o Thanos Sidecar

A adoção do Thanos geralmente começa pela integração do componente Sidecar nas instâncias existentes do Prometheus usando o Kubernetes. O procedimento básico exige injetar o container do Thanos no mesmo pod do Prometheus e configurar as credenciais de acesso ao object storage por meio de arquivos de configuração YAML.

  1. Crie um arquivo de configuração com as credenciais do seu provedor de object storage, definindo o tipo de bucket e as chaves de acesso necessárias.
  2. Adicione o container do Thanos Sidecar ao manifesto do seu Deployment do Prometheus, apontando para o diretório de dados compartilhado entre os containers.
  3. Inicie o Sidecar passando os parâmetros de conexão com o armazenamento em nuvem e a porta de comunicação gRPC interna.

Ao finalizar essa configuração, o Thanos Sidecar passa a expor uma interface gRPC padronizada que permite aos demais componentes do ecossistema enxergarem os dados daquela instância do Prometheus em tempo real, abrindo caminho para consultas globais unificadas.

Consultas Globais e Visão Unificada de Múltiplos Clusters

Um dos maiores pesadelos dos engenheiros de confiabilidade é gerenciar dezenas de clusters Kubernetes espalhados por diferentes regiões geográficas ou nuvens públicas. Sem uma ferramenta de agregação, o operador precisa acessar a interface do Prometheus de cada cluster individualmente para investigar um incidente que cruza fronteiras de rede. O Thanos Querier resolve esse problema ao unificar todas as fontes de métricas em um único ponto de acesso.

Na prática, você aponta o Thanos Querier para os endereços gRPC de todos os Sidecars e Store Gateways da sua organização. Quando um engenheiro executa uma consulta de PromQL na interface do Querier, ele distribui a requisição para todos os nós, consolida as respostas e entrega um gráfico consolidado em milissegundos. Isso elimina silos operacionais e garante uma experiência de troubleshooting fluida, independentemente de onde a aplicação esteja rodando.

Considerações Finais e Melhores Práticas Operacionais

Implementar métricas em escala utilizando Prometheus e Thanos exige planejamento arquitetônico rigoroso, mas o retorno sobre o investimento em termos de resiliência e visibilidade compensa amplamente o esforço. É fundamental dimensionar corretamente a rede entre os clusters e o object storage, além de monitorar a saúde dos componentes do Thanos para evitar gargalos silenciosos no pipeline de telemetria.

Ao adotar o armazenamento de longo prazo com descarregamento para a nuvem, as organizações ganham a liberdade de auditar tendências de capacidade ao longo de anos sem estourar o orçamento de infraestrutura. A observabilidade deixa de ser um peso financeiro reativo e passa a ser um pilar estratégico sustentável para o crescimento previsível de qualquer negócio digital.