R2 は分析を公開しており、アカウント内のバケットのリクエストとストレージを確認できます。
Cloudflare ダッシュボード ↗ に表示されるバケットのメトリクスは、Cloudflare の GraphQL Analytics API から照会されます。GraphQL または HTTP クライアントで、メトリクスに プログラムから アクセスできます。
R2 が現在公開しているデータセットは次の 2 つです。
| データセット | GraphQL データセット名 | 説明 |
|---|---|---|
| 操作 | r2OperationsAdaptiveGroups |
アカウント内のバケットに対して実行された操作のデータセットです。 |
| ストレージ | r2StorageAdaptiveGroups |
アカウント内のバケットのストレージのデータセットです。 |
| フィールド | 説明 |
|---|---|
| actionType | 実行された操作の名前です。 |
| actionStatus | 操作のステータスです。success、userError、internalError のいずれかです。 |
| bucketName | 操作の対象バケットです(該当する場合)。管轄を指定したバケットでは、バケット名の前に管轄とアンダースコアを付ける必要があります。例: eu_your-bucket-name |
| objectName | 操作の対象オブジェクトです(該当する場合)。 |
| responseStatusCode | この操作が返した HTTP ステータスコードです。 |
| datetime | リクエストの時刻です。 |
| フィールド | 説明 |
|---|---|
| bucketName | このストレージ値が対象とするバケットです。管轄を指定したバケットでは、バケット名の前に 管轄 ↗ とアンダースコアを付ける必要があります。例: eu_your-bucket-name |
| payloadSize | バケット内のオブジェクトのサイズです。 |
| metadataSize | バケット内のオブジェクトのメタデータのサイズです。 |
| objectCount | バケット内のオブジェクト数です。 |
| uploadCount | バケット内の未完了のマルチパートアップロード数です。 |
| datetime | このストレージ値が表す時刻です。 |
メトリクスは過去 31 日間を照会でき、同期間保持されます。これらのデータセットには、Cloudflare アカウント ID を指定する accountTag フィルターが必要です。
R2 のバケット単位の分析は、Cloudflare ダッシュボードで利用できます。バケットの現在および過去のメトリクスを表示する手順は次のとおりです。
-
Cloudflare ダッシュボードで、R2 object storage ページを開きます。
Overview を開く ↗ -
バケットを選択します。
-
Metrics タブを選択します。
必要に応じて、照会する時間範囲を選べます。デフォルトは直近 24 時間です。
GraphQL Analytics API を使って、R2 バケットの分析をプログラムから照会できます。この API は Cloudflare ダッシュボードと同じデータセットを照会し、GraphQL の イントロスペクション にも対応しています。
指定した期間について、バケット上の各操作タイプの量を照会するには、次のようなクエリを実行します。
query R2VolumeExample(
$accountTag: string!
$startDate: Time
$endDate: Time
$bucketName: string
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
r2OperationsAdaptiveGroups(
limit: 10000
filter: {
datetime_geq: $startDate
datetime_leq: $endDate
bucketName: $bucketName
}
) {
sum {
requests
}
dimensions {
actionType
}
}
}
}
}bucketName フィールドを外すと、アカウント全体の操作の概要を取得できます。ディメンションを追加すると、操作量をさらに細かく分解できます。
指定した期間について、バケットのストレージを照会するには、次のようなクエリを実行します。
query R2StorageExample(
$accountTag: string!
$startDate: Time
$endDate: Time
$bucketName: string
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
r2StorageAdaptiveGroups(
limit: 10000
filter: {
datetime_geq: $startDate
datetime_leq: $endDate
bucketName: $bucketName
}
orderBy: [datetime_DESC]
) {
max {
objectCount
uploadCount
payloadSize
metadataSize
}
dimensions {
datetime
}
}
}
}
}