- LogHouse escaló en un año de 19 PiB a más de 100 PB de datos de logs, llegando a casi 500 billones de filas
- Debido a las limitaciones de procesamiento de datos e ineficiencias de OpenTelemetry (OTel), se migró a un pipeline personalizado (SysEx) adaptado al sistema central
- Con esta transición, se logró mantener el uso de CPU por debajo del 10% incluso con un aumento de 20 veces en el volumen de eventos
- Con la adopción de HyperDX y ClickStack de ClickHouse, se construyó un entorno con UI y datos integrados, flexibilidad de esquema y una potente exploración de datos
- Mediante la adopción de un modelo de wide events y alta cardinalidad, ahora es posible almacenar y analizar todos los eventos sin agregación previa
Contexto y cambios
- LogHouse, la plataforma interna de logging para ClickHouse Cloud, creció en solo un año hasta convertirse en un sistema de gran escala: pasó de 19 PiB a más de 100 PB de datos, y de 37 billones de filas a casi 500 billones
- Al principio, toda la telemetría se recolectaba mediante OpenTelemetry (OTel), pero en un entorno de datos masivos se hicieron evidentes problemas de rendimiento, límites de recursos y desperdicio de CPU y pérdida de datos durante el proceso de transformación
Limitaciones de OTel y motivos para introducir un pipeline personalizado
- El pipeline de OTel era extremadamente ineficiente: los logs se convertían a JSON, luego se remapeaban al formato de OTel y pasaban repetidamente por conversiones y marshalling
- En la práctica, procesar 20 millones de filas por segundo con OTel requería alrededor de 8,000 núcleos de CPU
- Cuando el tráfico aumentaba bruscamente, el Collector se sobrecargaba y comenzaba a descartar logs, lo que provocaba datos no recolectados
Introducción de SysEx y su arquitectura
- SysEx (System Tables Exporter) mueve directamente a LogHouse los datos de las system tables de ClickHouse en sus tipos originales, sin transformación
- Usa scraping distribuido mediante una estructura de anillo hash, además de buffers con retraso temporal y ventanas deslizantes para evitar pérdida de datos y cumplir con los SLA internos
- Gracias a Go y a funciones personalizadas del cliente de ClickHouse, permite transferencia byte-to-byte sin marshalling de datos
- Para manejar esquemas variables, se aplican hash de esquema y administración dinámica de esquemas, y con el Merge table engine se integran múltiples versiones de esquema en una sola vista lógica
- También admite recolección basada en snapshots de tablas en memoria y tareas avanzadas de diagnóstico y análisis
Mejoras de rendimiento y eficiencia
- Con la adopción de SysEx, mientras OTel Collector procesa 2 millones de logs por segundo con 800 CPU, SysEx puede procesar 37 millones de logs con 70 CPU
- Esta mejora en eficiencia redujo drásticamente el uso de recursos, evitó la pérdida de eventos y permitió un entorno de soporte en tiempo real
El rol continuo de OTel
- OTel sigue siendo esencial por ofrecer una plataforma estándar y neutral frente a proveedores, y continúa siendo indispensable durante caídas del servicio o estados anómalos
- También puede capturar logs en situaciones de crash o fallas que SysEx no puede procesar
- Actualmente, para optimizar recursos, solo se eliminan los logs por debajo del nivel trace y se recolectan únicamente los de nivel info o superior
Integración de UI, HyperDX y ClickStack
- Se está migrando gradualmente desde una UI personalizada en Grafana hacia una UI nativa de ClickHouse basada en HyperDX
- HyperDX ofrece independencia de esquema, soporte para consultas Lucene y SQL, además de compatibilidad total con la amplia variedad de tipos de datos de ClickHouse
- También permite integrar datos provenientes de distintas estructuras de tablas y exporters personalizados sin necesidad de cambiar la UI
- Grafana sigue usándose de forma complementaria para métricas basadas en Prometheus y dashboards fijos
Adopción de Wide Events y del modelo de alta cardinalidad
- Los wide events son un enfoque innovador en el que cada fila incluye diverso contexto, como ID de consulta, nombre del Pod e información de versión, permitiendo almacenar todos los datos sin agregación
- A diferencia de Prometheus y otros sistemas, esto permite análisis profundos y consultas flexibles sin preocuparse por agregaciones previas, límites de labels o explosión de cardinalidad
- Las agregaciones necesarias se realizan en el momento del análisis, lo que permite equilibrar rendimiento y costo incluso en entornos de datos masivos
Visualización de datos y flexibilidad de consulta
- ClickHouse se integra muy bien con herramientas como Plotly y Jupyter notebook, lo que permite usar libremente distintos recursos de visualización
- Además de la exploración rápida con HyperDX basada en Lucene, ClickHouse permite hacer directamente análisis avanzados de causa raíz mediante consultas complejas con relaciones y condiciones (SQL, JOIN, etc.)
Crecimiento de diversas fuentes de datos basadas en Wide Events
- kubenetmon: proyecto open source de monitoreo de red para Kubernetes, enfocado en tráfico L3/L4, conexiones y análisis de costos
- Kubernetes Event Exporter: uso de un fork con ClickHouse sink añadido para rastrear cambios de estado en clústeres grandes; también se experimenta con snapshots completos de objetos
- Control Plane Data, RUM (Real User Monitoring) y Istio Access Log, entre otras capas de datos, han ampliado enormemente el alcance de interpretación y la capacidad de análisis correlacional
Consideraciones operativas y dirección futura
- Aunque SysEx puede exponerse en logs y métricas durante las consultas, fue diseñado con límites de memoria y una estructura que minimiza el impacto en caso de error
- Zero-impact scraping: se está investigando un enfoque completamente desacoplado (por ejemplo, usando plain rewritable disk basado en S3) para eliminar de raíz incluso el impacto sobre el clúster
- OTel sigue siendo importante para asegurar logs en etapas iniciales del servicio y en estados anómalos, pero si el enfoque zero-impact se estabiliza, su dependencia podría reducirse aún más
Evolución y uso del tipo JSON de ClickHouse
- El tipo JSON fue lanzado oficialmente como GA, permitiendo creación dinámica de columnas por campo, soporte para múltiples tipos y una respuesta flexible ante la explosión de esquemas
- Como la optimización de consultas JSON con muchas columnas aún no es perfecta, se están refinando enfoques como el almacenamiento paralelo por forma y la reevaluación de la practicidad del tipo Map
- En conjunto con HyperDX, es posible extraer y analizar automáticamente campos Map y JSON, y se planea ampliar aún más el uso de JSON en el futuro
Conclusión y cambio cultural
- LogHouse ya se consolidó como la plataforma central de observabilidad para la operación de ClickHouse Cloud, desde análisis de rendimiento hasta debugging en tiempo real
- Aunque el punto de partida fue la reducción de costos, la organización está viviendo una transformación técnica y cultural gracias a herramientas personalizadas como SysEx, la convivencia con OTel y la expansión de una UI flexible basada en HyperDX
- Un modelo de datos de Wide Events de gran escala y alta precisión está aportando nuevo valor y eficiencia en ingeniería, soporte y análisis de datos
- A partir de la experiencia obtenida operando a escala de 100 PB y 500 billones de filas, planean seguir liderando el futuro de la observabilidad
1 comentarios
Comentarios de Hacker News