Pulse 게시 ·

Cloudflare, Logpush 로그 변환의 SQL 실행 구조·실패 처리 공개

Cloudflare가 Logpush의 로그 필터링·민감정보 삭제·필드 재구성을 내보내기 전에 수행하는 Transformers의 내부 구조를 공개했다. Go 전송 서비스 안에서 Rust 기반 DataFusion을 실행해 별도 네트워크 호출을 줄인다. 변환에 실패하면 원본 로그를 보내지 않고 재시도하며, 장기간 실패한 작업은 자동 중단한다.

내용·출처 업데이트 · 2026. 10. 13. 오전 1:01

최근 Birthday Week에 일반 제공으로 전환한 기능의 구현 설명이며, 이번 글에서 새로 출시했다고 발표한 것은 아니다. Free·Pro·Business·Enterprise 요금제에서 제공한다.

SQL의 WHERE로 레코드를 걸러내고 SELECT로 필드를 추가·변경·삭제·중첩한다. 출력은 NDJSON이며 같은 데이터셋을 쓰는 호환 Logpush 작업에 연결한다.

Cloudflare의 합성 HTTP 요청 로그 5000행 시험에서 준비된 변환을 Go 고루틴 하나로 실행하는 데 약 3ms가 걸렸다. 실제 고객 작업 전체의 처리량 측정은 아니다.

Go와 Rust 사이에서 Arrow IPC로 배치를 교환한다. Rust 출력은 Go 메모리에 복사한 뒤 Rust 할당을 명시적으로 해제한다.

실패 시 전송 위치를 진행시키지 않으며 재시도 간격을 늘린다. 변환 성공·실패, 전후 데이터량과 실행시간은 Transformer Health에서 확인한다.

로그를 목적지에 보내기 전에 걸러내면 버릴 데이터의 수집·저장 비용을 줄이고, 민감정보가 외부 분석 시스템에 도착하는 것도 막을 수 있다.

원문