WorkersにおけるL4トランスポートテレメトリフィールドの新機能
2026年4月1日
Workersにおいて、クライアント接続からのレイヤー4トランスポートテレメトリを公開する3つの新しいプロパティがrequest.cfで利用可能になりました。これらのプロパティにより、Workerはクライアント側の変更を必要とせずに、ラウンドトリップ時間やデータ配信レートなどのリアルタイム接続品質シグナルに基づいて判断を行うことができます。
以前は、このテレメトリはServer-Timing: cfL4レスポンスヘッダーでのみ利用可能でした。これらの新しいプロパティは、同じデータをWorkersランタイム内で直接提供するため、ルーティング、ログ記録、またはレスポンスのカスタマイズに使用できます。
新しいプロパティ
| プロパティ | 型 | 説明 |
|---|
clientTcpRtt | number | undefined | CloudflareとクライアントとのスムーズなTCPラウンドトリップ時間(RTT)をミリ秒単位で表示。TCP接続(HTTP/1、HTTP/2)でのみ存在。例:22 |
clientQuicRtt | number | undefined | CloudflareとクライアントとのスムーズなQUICラウンドトリップ時間(RTT)をミリ秒単位で表示。QUIC接続(HTTP/3)でのみ存在。例:42 |
edgeL4 | Object | 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を参照してください。