☎️
【PoC 用】HTTP リクエストログをリアルタイム確認できる Instant Logs
Instant Logs(インスタントログ)とは
Cloudflare のログをリアルタイムで確認したいケースに使える Instant Logs(インスタントログ)の紹介です。
- 執筆時点(2025年9月)では HTTP リクエストログのみが対象なので、ゾーンごとに利用
- ダッシュボードと CLI から利用可能
これだけの規模で運用されているプラットフォームにも関わらず、リアルタイムにログが出てくるので、PoC での動作確認などで非常に重宝します。
ダッシュボード(GUI)
分析とログ > インスタントログ にあります。

使い方は簡単で ストリーミングを開始する を押します。
ゾーンで HTTP リクエストを受信すると、リアルタイムに順次表示されてきます。

一つをクリックすると、各フィールドの情報が表示されます。

フィールドと値でマッチ条件を作り、表示にフィルターを掛けることができます。

フィルターされたものだけが表示されます。

CLI(API)
CLI(API) からも確認可能です。
POST リクエストでジョブを作成し、作成したジョブに Websocket でつなぎます。
ジョブの作成は下記を決めてから投入します。
- 表示フィールドの指定
fields - フィルター条件の指定
filter - サンプリングレートの指定
sample-
1が 100% とる、10は 10% とる、など
システム側の上限値を超えるログ数が発生した場合には、自動レートを適用
ログ中のsampleIntervalで実効値を確認可能
-
fields の値
フィールド1,フィールド2,...
filter の値
{"where":{"and":[{"key":"フィールド","operator":"オペレータ","value":"値"}]}}
ジョブの作成
curl "https://api.cloudflare.com/client/v4/zones/$ZONE/logpush/edge/jobs" \
--request POST \
--header "Authorization: $TOKEN" \
--json '{
"fields": "ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID",
"sample": 1,
"filter": "{\"where\":{\"and\":[{\"key\":\"ClientRequestHost\",\"operator\":\"eq\",\"value\":\"rr.oymk.work\"}]}}",
"kind": "instant-logs"
}' -s | jq '.'
応答例
{
"errors": [],
"messages": [],
"result": {
"fields": "ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID",
"sample": 1,
"filter": "{\"where\":{\"and\":[{\"key\":\"ClientRequestHost\",\"operator\":\"eq\",\"value\":\"rr.oymk.work\"}]}}",
"destination_conf": "wss://logs.cloudflare.com/instant-logs/ws/sessions/06ff7b64672740ec578391d934854f26",
"kind": "instant-logs",
"session_id": "06ff7b64672740ec578391d934854f26"
},
"success": true
}
destination_conf の URL に Websocket で接続すると、ログがストリームされ始めます。
websocat の例
リクエスト
websocat wss://logs.cloudflare.com/instant-logs/ws/sessions/06ff7b64672740ec578391d934854f26 | jq '.'
応答例
{
"ClientIP": "104.28.162.101",
"ClientRequestHost": "rr.oymk.work",
"ClientRequestMethod": "GET",
"ClientRequestURI": "/abcd",
"EdgeEndTimestamp": "2025-09-30T00:27:31Z",
"EdgeResponseBytes": 1761,
"EdgeResponseStatus": 404,
"EdgeStartTimestamp": "2025-09-30T00:27:31Z",
"RayID": "986f984f9c59d768",
"sampleInterval": 1
}
その他
dev docs には Angle Grinder を使った JSON 戻り値のパースや Instant Logs の Limits や Availability なども書かれていますのでご確認ください。
Discussion