OpenAICloudflare Developer PlatformApr 1, 2026, 12:00 AM

Workers - New L4 transport telemetry fields in Workers

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

openaienmodel: gpt-5-mini-2025-08-07

Workers - New L4 transport telemetry fields in Workers

Key Points

  • clientTcpRtt: smoothed TCP RTT (ms)
  • clientQuicRtt: smoothed QUIC RTT (ms)
  • edgeL4.deliveryRate: data delivery rate (B/s)

Summary

Cloudflare Workers now expose Layer 4 transport telemetry directly on request.cf so your Worker can read real-time connection quality signals (RTT and delivery rate) without client changes. This data was previously only available via the Server-Timing: cfL4 header.

Key Points

  • New properties on request.cf:
    • clientTcpRtt (number | undefined): smoothed TCP RTT in milliseconds (HTTP/1, HTTP/2).
    • clientQuicRtt (number | undefined): smoothed QUIC RTT in milliseconds (HTTP/3).
    • edgeL4?.deliveryRate (number | undefined): recent data delivery rate in bytes/second.
  • Values are estimates and may be undefined; always check and provide fallbacks.
  • Common uses: routing by transport, adaptive responses, logging, metrics, and propagating telemetry to upstreams.
  • Practical inline example: rtt = cf.clientTcpRtt ?? cf.clientQuicRtt ?? 0, deliveryRate = cf.edgeL4?.deliveryRate ?? 0, then set headers like X-Client-RTT and X-Delivery-Rate before fetching upstream.

Actionable Notes

  • Treat RTT as milliseconds and deliveryRate as bytes/second when computing thresholds.
  • Prefer transport-specific field (clientQuicRtt for QUIC, clientTcpRtt for TCP).
  • Instrument logging and routing rules to handle undefined and smoothed values appropriately.

Full Translation

Translations

A translation section that keeps the flow of the original article.

openaijamodel: gpt-5-mini-2025-08-07

Workers — 新しい L4 トランスポート テレメトリ フィールド

Changelog — Cloudflare の新しい更新と改善

公開日: 2026-04-01 カテゴリ: Workers

Workers — 新しい L4 トランスポート テレメトリ フィールド

Workers の request.cf に、クライアント接続からのレイヤ 4 トランスポート テレメトリを公開する新しいプロパティが 3 つ追加されました。これらのプロパティを使用すると、クライアント側の変更を必要とせずに、ラウンドトリップタイムやデータ配信速度などのリアルタイム接続品質シグナルに基づいて Worker 内で意思決定ができます。

以前は、このテレメトリは Server-Timing: cfL4 レスポンスヘッダーでのみ利用可能でした。今回の新しいプロパティは同じデータを Workers ランタイム内に直接露出するため、ルーティング、ログ記録、レスポンスのカスタマイズなどに利用できます。

新しいプロパティ

  • clientTcpRttnumber | undefined

    • Cloudflare とクライアント間の平滑化された TCP ラウンドトリップタイム (RTT) をミリ秒単位で返します。TCP 接続 (HTTP/1, HTTP/2) の場合にのみ存在します。例: 22
  • clientQuicRttnumber | undefined

    • Cloudflare とクライアント間の平滑化された QUIC ラウンドトリップタイム (RTT) をミリ秒単位で返します。QUIC 接続 (HTTP/3) の場合にのみ存在します。例: 42
  • edgeL4Object | undefined

    • レイヤ 4 トランスポートの統計情報を含むオブジェクト。deliveryRate (number) を含み、接続に対する最新のデータ配信速度の推定値をバイト/秒で示します。例: 123456

例: 接続品質メトリクスをログ出力

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 } )) ;
  },
};

詳細

詳しくは Workers Runtime APIs: Request を参照してください。