Feature
New L4 transport telemetry fields in Workers
Three new properties are now available on request.cf in Workers that expose Layer 4 transport telemetry from the client connection. These properties let your Worker make decisions based on real-time connection quality signals — such as round-trip time and data delivery rate — without requiring any client-side changes.
Previously, this telemetry was only available via the Server-Timing: cfL4 response header. These new properties surface the same data directly in the Workers runtime, so you can use it for routing, logging, or response customization.
New properties
Property · Type · Description
clientTcpRtt · number | undefined · The smoothed TCP round-trip time (RTT) between Cloudflare and the client in milliseconds. Only present for TCP connections (HTTP/1, HTTP/2). For example, 22.
clientQuicRtt · number | undefined · The smoothed QUIC round-trip time (RTT) between Cloudflare and the client in milliseconds. Only present for QUIC connections (HTTP/3). For example, 42.
edgeL4 · Object | undefined · Layer 4 transport statistics. Contains deliveryRate (number) — the most recent data delivery rate estimate for the connection, in bytes per second. For example, 123456.
Example: Log connection quality metrics
export default { async fetch(request) { const cf = request.cf; const rtt = cf.clientTcpRtt ?? cf.clientQuicRtt ?? 0; const deliveryRate = cf.edgeL4?.deliveryRate ?? 0; const transport = cf.clientTcpRtt ? "TCP" : "QUIC"; console.log(`Transport: ${transport}, RTT: ${rtt}ms, Delivery rate: ${deliveryRate} B/s`); const headers = new Headers(request.headers); headers.set("X-Client-RTT", String(rtt)); headers.set("X-Delivery-Rate", String(deliveryRate)); return fetch(new Request(request, { headers })); }, };
For more information, refer to Workers Runtime APIs: Request.
Read the original announcement