Cloudflare explicó este 12 de octubre de 2026 cómo funcionan los Transformers de Logpush, que procesan logs con SQL antes de exportarlos. No es un lanzamiento de hoy: durante su reciente Birthday Week, la empresa llevó Logpush a todos sus planes de autoservicio y anunció la disponibilidad general de Transformers, como parte de ocho actualizaciones de Cloudflare Observability. Los detalles están en el blog de Cloudflare.

🔒 La idea es que los registros lleguen preparados a un SIEM, una plataforma de análisis o almacenamiento de objetos, sin montar otro servicio para limpiarlos: puedes excluir verificaciones de salud y tráfico interno, ocultar campos sensibles o normalizar logs de distintas CDN. Cada Transformer contiene una consulta para un conjunto de datos específico: WHERE decide qué registros salen y SELECT define su contenido, con opciones para agregar, renombrar, quitar o anidar campos. El ejemplo de Cloudflare también oculta parte de la IP del cliente y añade información del proveedor y de errores; tanto la entrada como la salida usan NDJSON, así que no convierte formatos de serialización.

🛠️ Los Transformers se pueden crear, previsualizar y administrar desde Transformer Studio, en el panel de Cloudflare, o mediante la API; después se vinculan a un trabajo de Logpush compatible con NDJSON y con el mismo conjunto de datos. Cada modificación genera una versión nueva para revisar los cambios, y la consulta se ejecuta sobre cada lote antes de enviarlo al destino. Logpush entrega esos lotes lo más rápido posible para ofrecer información casi en tiempo real; descartar registros antes de exportarlos puede reducir el volumen y los costos posteriores de exportación, ingesta y almacenamiento.

📊 Según Cloudflare, su infraestructura ingiere más de mil millones de eventos por segundo, mientras Bufstream, su servicio de entrega de Logpush escrito en Go, envía más de 110 millones de registros por segundo mediante cientos de pods de Kubernetes que toman segmentos temporales de Buftee, su intermediario interno de mensajes basado en logs. La mayoría de los trabajos mueve volúmenes menores, pero algunos procesan millones de logs por segundo: para atenderlos, Bufstream ejecuta transformaciones de lotes en paralelo por trabajo y aprovecha su programación, agrupación y controles de destino existentes. El motor elegido fue Apache DataFusion, escrito en Rust, basado en Arrow y utilizado también por Cloudflare Basin; en una prueba con un lote sintético de 5,000 filas de http_requests, una transformación preparada tardó unos 3 ms desde una sola goroutine de Go, equivalente a aproximadamente 1.6 millones de filas por segundo.

💻 Antes de ejecutar SQL, Bufstream descomprime los lotes con registros Cap’n Proto, analiza los logs elegibles y construye un RecordBatch de Apache Arrow, un formato columnar en memoria que permite a DataFusion ejecutar consultas de forma vectorizada. Go y Rust intercambian los lotes mediante Arrow IPC a través de una interfaz C y cgo: Go presta el puntero de entrada durante la llamada, Rust no lo conserva al regresar y, para la salida, Go copia el búfer generado por Rust a su propia memoria y libera explícitamente la asignación de Rust. Así se mantienen claras la propiedad y la vida útil de la memoria, y se evita reconstruir columnas analizando JSON registro por registro; aunque serializar y decodificar sigue teniendo costo, los tipos, valores nulos y estructuras anidadas viajan de manera consistente, con validación y un esquema generado a partir de la definición del conjunto de datos, no inferido de cada lote.

¿Por qué importa para tu pipeline de logs?

Para los equipos de observabilidad, el cambio es mover la limpieza al flujo de exportación, en lugar de desplegar, escalar y mantener una capa aparte. Cloudflare probó inicialmente Transformers WebAssembly en Workers, pero descartó esa ruta porque agregaba una llamada de red susceptible a tiempos de espera y reintentos. Ejecutarlos dentro de Bufstream evita ese salto y esa dependencia remota, aunque cada transformación sí añade trabajo de CPU.

💬 ¿Qué filtrarías primero antes de mandar tus logs al SIEM: verificaciones de salud, tráfico interno o campos sensibles?

¿Pero deveras? 🌵💚