- LogHouse escalou em um ano de 19 PiB para mais de 100 PB de dados de logs, chegando a cerca de 500 trilhões de linhas
- Devido aos limites e ineficiências no processamento de dados do OpenTelemetry (OTel), houve migração para um pipeline sob medida (SysEx) adequado ao sistema central
- Com essa transição, foi possível alcançar uma eficiência em que a taxa de processamento de eventos aumentou 20 vezes enquanto o uso de CPU permaneceu abaixo de 10%
- Com a adoção de HyperDX e ClickStack do ClickHouse, foram construídos integração entre UI e dados, flexibilidade de esquema e um ambiente robusto de exploração de dados
- Com a adoção de um modelo de wide events e alta cardinalidade, tornou-se possível armazenar e analisar todos os eventos sem pré-agregação
Contexto e mudanças
- LogHouse, a plataforma interna de logging do ClickHouse Cloud, cresceu em um ano de um sistema com 19 PiB de dados e 3,7 trilhões de linhas para um sistema de grande porte com mais de 100 PB e quase 500 trilhões de linhas
- No início, toda a telemetria era coletada via OpenTelemetry (OTel), mas em um ambiente de dados em grande escala ficaram evidentes problemas de desempenho, limites de recursos e desperdício de CPU e perda de dados durante o processo de transformação de dados
Limites do OTel e por que adotar um pipeline sob medida
- O pipeline do OTel era extremamente ineficiente, porque os logs eram convertidos para JSON, depois remapeados novamente para o formato OTel, repetindo várias conversões e marshaling
- Na prática, processar 20 milhões de linhas por segundo com base em OTel exigiria cerca de 8.000 núcleos de CPU
- Em picos de tráfego, o Collector ficava sobrecarregado e ocorria queda de logs, gerando dados que não eram coletados
Adoção e arquitetura do SysEx
- SysEx (System Tables Exporter) move dados das system tables do ClickHouse diretamente para o LogHouse, preservando os tipos originais e sem conversões
- Com scraping distribuído por estrutura de hash ring, buffer de atraso temporal e janelas deslizantes, evita perda de dados e atende ao SLA interno
- Usando Go e funcionalidades customizadas do cliente ClickHouse, é possível fazer transferência byte-to-byte sem marshaling de dados
- Para lidar com esquemas variáveis, foram aplicados hash de esquema e gerenciamento dinâmico de schema, e o Merge table engine integra várias versões de schema em uma única visão lógica
- Coleta baseada em snapshots de tabelas em memória e suporte a tarefas avançadas de diagnóstico e análise
Melhorias de desempenho e eficiência
- Com a adoção do SysEx, enquanto o OTel Collector processa 2 milhões de logs por segundo com 800 CPUs, o SysEx consegue processar 37 milhões de logs com 70 CPUs
- Esse ganho de eficiência reduziu drasticamente o uso de recursos, evitou perda de eventos e viabilizou um ambiente com suporte em tempo real
O papel contínuo do OTel
- O OTel continua fornecendo uma plataforma padrão e neutra em relação a fornecedor, e segue sendo essencial em falhas de serviço ou estados anormais
- Ele ainda consegue capturar logs em situações de crash e anomalias que o SysEx não consegue processar
- Atualmente, apenas logs abaixo do nível trace são descartados, e são coletados somente logs de nível info ou superior para otimizar recursos
Integração de UI com HyperDX e ClickStack
- Está em curso uma transição gradual da UI customizada baseada em Grafana para uma UI nativa de ClickHouse baseada em HyperDX
- O HyperDX oferece compatibilidade completa com a ampla variedade de tipos de dados do ClickHouse, com independência de schema, suporte a consultas Lucene e suporte a SQL
- Mesmo dados vindos de diferentes estruturas de tabela e de Exporters customizados podem ser integrados sem mudanças na UI
- O Grafana continua responsável por métricas baseadas em Prometheus e dashboards fixos, de modo que as duas soluções são usadas de forma complementar
Adoção de Wide Events e modelo de alta cardinalidade
- Wide events são uma abordagem inovadora em que cada linha inclui diversos contextos, como ID da consulta, nome do Pod e informações de versão, armazenando todos os dados sem agregação
- Diferentemente de soluções como Prometheus, essa abordagem permite análise profunda e consultas flexíveis sem pré-agregação, limites de labels ou preocupação com explosão de cardinalidade
- Ao realizar as agregações necessárias no momento da análise, é possível equilibrar desempenho e custo mesmo em ambientes com grandes volumes de dados
Visualização de dados e flexibilidade de consulta
- O ClickHouse se integra muito bem com Plotly, Jupyter notebook e outras ferramentas, permitindo usar livremente diversos recursos de visualização
- Além da exploração rápida do HyperDX baseado em Lucene, o ClickHouse também permite diretamente análises avançadas de causa raiz por meio de consultas com relações e condições complexas (SQL, JOIN etc.)
Crescimento de diversas fontes de dados baseadas em Wide Events
- kubenetmon: open source de monitoramento de rede Kubernetes, análise de tráfego L3/L4, conexões e custos
- Kubernetes Event Exporter: uso de um fork com adição de sink para ClickHouse, rastreamento de mudanças de estado em clusters de grande porte, e experimentos com snapshots completos de objetos
- Control Plane Data, RUM (Real User Monitoring) e Istio Access Log: dados de várias camadas que ampliam fortemente o alcance de interpretação e a capacidade de análise de correlação
Considerações operacionais e direções futuras
- O SysEx pode ficar exposto a logs e métricas durante consultas, mas foi projetado com limites de memória e uma estrutura que minimiza o impacto em caso de erro
- Zero-impact scraping: estão sendo estudadas formas totalmente desacopladas (por exemplo, usando plain rewritable disk baseado em S3) para eliminar de forma fundamental até mesmo o impacto sobre o cluster
- O OTel continua importante para garantir logs no início do serviço e em estados anormais, mas, conforme a abordagem zero-impact se estabilizar, a dependência dele deve cair ainda mais
Evolução e uso do tipo JSON do ClickHouse
- O tipo JSON foi lançado oficialmente em GA, permitindo criação dinâmica de colunas por campo, suporte a vários tipos e resposta flexível até mesmo a explosões de schema
- Como a otimização para consultas JSON com grande número de colunas ainda não está perfeita, seguem sendo refinadas abordagens como armazenamento paralelo por formato e a confirmação da praticidade do tipo Map
- Em integração com o HyperDX, é possível extrair e analisar automaticamente campos Map e JSON, com planos de ampliar ainda mais o uso de JSON no futuro
Conclusão e mudança cultural
- O LogHouse agora se consolidou como a plataforma central de observabilidade da operação do ClickHouse Cloud, indo de análise de desempenho até debugging em tempo real
- A redução de custos foi o ponto de partida, mas com ferramentas sob medida como o SysEx, a combinação com OTel e a expansão de uma UI flexível baseada em HyperDX, a equipe vem passando por uma transformação técnica e cultural
- Um modelo de dados baseado em Wide Events, em larga escala e com alta precisão, oferece novo valor e eficiência para engenharia, suporte e análise de dados
- A partir da experiência obtida na escala de 100 PB e 500 trilhões de linhas, o plano é continuar liderando o futuro da observabilidade
1 comentários
Comentários do Hacker News