Novo backend ClickHouse do Jaeger atinge compressão de 8,6 vezes com 10 milhões de spans
Aprofundamento CEVIU
Aprofundamento
O jaeger v2.18.0 trouxe uma mudança estrutural forte para times de observabilidade: o suporte nativo ao ClickHouse como backend de armazenamento. Conforme detalham os mantenedores no artigo original do CNCF, a escolha não é aleatória. Diferente de bancos orientados a linhas, o ClickHouse é um OLAP colunar que lida muito bem com a redundância inerente a dados de telemetria. Nomes de serviços, operações e tags se repetem milhões de vezes, e o armazenamento colunar comprime isso de forma agressiva.
Para chegar a uma taxa de compressão de 8,6 vezes, a equipe precisou redesenhar o schema. A chave primária foi definida para otimizar buscas por serviço, operação e tempo, em vez de ordenar apenas pelo ID do trace. A recuperação de traces completos usa filtros bloom e views materializadas para compensar a perda de performance. O modelo de dados do OpenTelemetry também exigiu o uso de colunas aninhadas para lidar com atributos tipados em múltiplos níveis, como resource, scope e span.
Por que isso importa
Para engenharia de plataformas, armazenar traces sempre foi um dilema entre custo e performance. Backends como Cassandra e Elasticsearch exigem indexação pesada e escalam de forma complexa. O novo backend reduz o volume em disco de quase 6 GiB para 722 MiB em um teste de 10 milhões de spans. Isso impacta diretamente a fatura de infraestrutura em nuvem.
O ganho vai além do armazenamento barato. O ClickHouse permite calcular métricas de latência, taxa de chamadas e erros diretamente sobre os spans. Com isso, o jaeger entrega o Service Performance Monitoring de forma nativa, eliminando a necessidade de um pipeline de métricas externo e reduzindo a complexidade da stack de observabilidade.
Perguntas frequentes
O que é o backend ClickHouse no jaeger?
É uma nova opção de armazenamento para traces distribuídos introduzida na versão 2.18.0. Ele usa um banco de dados OLAP colunar para guardar spans, oferecendo alta taxa de compressão e consultas analíticas rápidas sem precisar de indexação pesada.
Como o jaeger lida com a busca por ID do trace no ClickHouse?
Como a chave primária é otimizada para buscas por serviço e tempo, a busca direta por ID do trace usa um índice skip de bloom filter e uma view materializada de timestamps. Isso permite localizar o bloco correto no disco sem ler a tabela inteira.
O Service Performance Monitoring precisa de ferramentas externas agora?
Não. Com o backend ClickHouse, o jaeger consegue agregar latência, taxas de erro e volume de chamadas diretamente na base de traces. Isso remove a dependência de um pipeline de métricas separado para gerar os dashboards de monitoramento de performance de serviços.
Quais são as limitações de buscar apenas por atributos no novo schema?
Buscas que usam apenas atributos são mais custosas porque não aproveitam a chave primária ordenada por serviço e tempo. A recomendação é sempre combinar filtros de atributos com janelas de tempo ou nomes de serviço para evitar varreduras pesadas.
Fontes
- cncf.iofonte original
- Categoria
- CEVIU DevOps
- Publicado
- 26 de junho de 2026
- Editoria
- CEVIU DevOps
