ゾーンの 1 日あたりのデータ量(ログ行数と、そのバイト数)を見積もるには、1 時間分のデータの 1% または 10% サンプルをリクエストします(量が少ない場合は 10% を使います)。start=2018-12-15T00:00:00Z と end=2018-12-15T01:00:00Z は 1 時間の範囲で、sample=0.1 です。
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/received?start=2018-12-15T00:00:00Z&end=2018-12-15T01:00:00Z&sample=0.1" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
> sample.logwc -l sample.log83 sample.logls -lh sample.log-rw-r--r-- 1 mik mik 25K Dec 17 15:49 sample.logこの情報から、1 日あたりのメッセージ数はおよそ 19,920 件(83 × 10 × 24)、バイトサイズは 6MB(25K × 10 × 24)です。サイズの見積もりは、デフォルトのレスポンスフィールドセットに基づきます。レスポンスフィールドセットを変えると(フィールド を参照)、レスポンスサイズも変わります。
1 日のトラフィックを適切に見積もるには、1 時間のサンプルで少なくとも 30 行のログを取るのがよいです。レスポンスが小さすぎる(または大きすぎる)場合は、時間範囲ではなく sample の値を調整します。
レスポンスはデフォルトで圧縮されます(gzip)。cURL はレスポンスを透過的に展開します。次を指定した場合を除きます。
--header "Accept-Encoding: gzip"
この場合、出力は gzip のままです。圧縮後のデータは、非圧縮時のおよそ 5〜10% です。つまり、非圧縮 1GB のレスポンスは 50〜100MB に圧縮されます。
レスポンスまたはタイムアウトの上限を超えた場合、またはレスポンスの取得に問題があった場合は、ステータス 200 が返り、レスポンス末尾に JSON ではないテキスト行 “Error streaming data.” が付きます。レスポンスはストリームされるため、エラーを事前に知る方法はありません。末尾に “Error streaming data" のテキスト行がなければ、そのレスポンスは成功です。
あるゾーンと時間範囲で成功したレスポンスを受け取ったあと、以降の同じリクエストでは次が成り立ちます。
- 返されるレコードの件数と内容は同じです。
- レコードの順序は異なることがあります(異なる可能性が高いです)。
fields パラメーターの指定について:
- リクエスト URL にフィールドを明示した場合、返されるフィールドは変わりません。
- URL に指定しない場合は、デフォルトフィールドが返されます。
- デフォルトフィールドはいつでも変わることがあります。
次の利用制限があります。
- レート制限: この上限を超えると
429エラーレスポンスになります。- ゾーンあたり 15 リクエスト/分。
- ユーザー(メールアドレス)あたり 180 リクエスト/分。
- 時間範囲: start と end パラメーターの差は最大 1 時間です。
- レスポンスサイズ: 1 リクエストあたりの最大レスポンスサイズは 10GiB です。約 55 フィールドを選んだ場合、およそ 1,500 万レコードに相当します(選ぶフィールドが少ないほどレコードあたりのサイズが小さくなり、より多くのレコードを取得できます)。
- タイムアウト: 10 分後に接続が切断され、レスポンスは失敗します。
- ストリームタイムアウト: 接続が 30 秒アイドルになると、リクエストは
408エラーレスポンスで終了します。このタイムアウトは、リクエストが重すぎることが多いです(1 時間あたり 12 回を超える頻繁なタイムアウトがあると、以降のクエリは 1 時間、ステータスコード 429 でブロックされます)。そのため、次を試してください。- より少ないフィールドでレコードをリクエストします。
- start と end の範囲を狭くします。