본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

메트릭과 분석 (Metrics and analytics)

원문 보기 위키 갱신

R2의 스토리지·작업·대역폭 사용량 메트릭을 확인하는 방법을 알려드려요.

출처: 문서

본문

R2는 버킷 전반의 요청·스토리지·대역폭 사용량에 대한 분석을 제공해요. Cloudflare 대시보드 ↗︎에서 버킷에 표시되는 메트릭은 Cloudflare의 GraphQL Analytics API로 조회한 값이에요. 메트릭은 프로그래밍 방식으로 GraphQL이나 HTTP 클라이언트를 통해 접근할 수도 있어요.

메트릭 (Metrics)

R2에는 세 가지 데이터셋이 있어요:

데이터셋(Dataset) GraphQL 데이터셋 이름 설명(Description)
작업(Operations) r2OperationsAdaptiveGroups 계정 내 버킷에 대해 수행된 작업으로 구성된 데이터셋.
스토리지(Storage) r2StorageAdaptiveGroups 계정 내 버킷의 스토리지로 구성된 데이터셋.
대역폭(Bandwidth) r2BandwidthUsageAdaptiveGroups 계정 내 버킷의 업로드·다운로드 바이트를 담은 데이터셋.

메트릭은 최대 31일 범위로 조회할 수 있어요. 이 데이터셋들은 Cloudflare 계정 ID를 담은 accountTag 필터가 필요해요.

관할권(jurisdiction) 제한이 있는 버킷 조회

계정 안에는 같은 이름의 버킷이 두 개 있을 수 있어요. 하나는 관할권(jurisdiction)이 지정되어 있고, 다른 하나는 없을 수 있죠.

그래서 관할권이 지정된 버킷에 대한 메트릭을 조회하려면 버킷 이름 앞에 관할권 뒤에 밑줄(underscore)을 붙여야 해요. 예: eu_bucket-name. 이렇게 해야 올바른 버킷을 조회할 수 있어요.

Operations 데이터셋

필드(Field) 설명(Description)
actionType 수행된 작업의 이름.
actionStatus 작업의 상태. success, userError, 또는 internalError일 수 있음.
bucketName 해당하는 경우 작업이 수행된 버킷. 관할권이 지정된 버킷은 버킷 이름 앞에 관할권과 밑줄을 포함해야 함. 예: eu_your-bucket-name
objectName 해당하는 경우 작업이 수행된 객체.
responseStatusCode 이 작업이 반환한 http 상태 코드.
datetime 요청 시각.

Storage 데이터셋

필드(Field) 설명(Description)
bucketName 이 스토리지 값이 속한 버킷. 관할권이 지정된 버킷은 버킷 이름 앞에 관할권 ↗︎과 밑줄을 포함해야 함. 예: eu_your-bucket-name
payloadSize 버킷 안의 객체 크기.
metadataSize 버킷 안의 객체 메타데이터 크기.
objectCount 버킷 안의 객체 수.
uploadCount 버킷 안의 보류 중인 멀티파트 업로드 수.
datetime 이 스토리지 값이 나타내는 시각.

Bandwidth 데이터셋

이 데이터셋은 100 KiB보다 작은 대역폭 전송을 제외해요. 이 기준은 객체 크기가 아니라 전송 크기에 적용돼요.

다음 필드로 필터링할 수 있어요:

필드(Field) 설명(Description)
bucketName 해당하는 경우 관할권 접두사를 포함한 R2 버킷 식별자.
date 하루의 시작으로 절사(truncate)된 전송 타임스탬프.
datetimeHour 시간의 시작으로 절사된 전송 타임스탬프.
datetimeFifteenMinutes 가장 가까운 15분 단위로 반올림(내림)된 전송 타임스탬프.
datetimeFiveMinutes 5분 간격의 시작으로 절사된 전송 타임스탬프.
datetimeMinute 분의 시작으로 절사된 전송 타임스탬프.
datetime 원본(raw) 전송 타임스탬프.

다음 필드는 합산(sum)할 수 있어요:

필드(Field) 설명(Description)
bytesDownload 다운로드된 바이트.
bytesUpload 업로드된 바이트.

대시보드로 보기 (View via the dashboard)

R2의 버킷별 분석은 Cloudflare 대시보드에서 확인할 수 있어요. 버킷의 현재·과거 메트릭을 보려면:

  1. Cloudflare 대시보드에서 R2 object storage 페이지로 이동하세요. Go to Overview ↗
  2. 버킷을 선택하세요.
  3. Metrics 탭을 선택하세요.

조회할 시간 창을 선택할 수도 있어요. 기본값은 최근 24시간이에요.

GraphQL API로 조회하기 (Query via the GraphQL API)

GraphQL Analytics API를 통해 R2 버킷의 분석을 프로그래밍 방식으로 조회할 수 있어요. 이 API는 Cloudflare 대시보드와 동일한 데이터셋을 조회하며, GraphQL introspection을 지원해요.

예시 (Examples)

Operations

주어진 기간 동안 버킷의 각 작업 유형별 볼륨을 조회하려면 다음과 같은 쿼리를 실행하면 돼요:

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 필드를 제거하면 작업에 대한 계정 수준 개요를 얻을 수 있어요. 쿼리에 더 많은 차원(dimensions)을 추가하면 작업 볼륨을 더 세분화할 수도 있어요.

Storage

주어진 기간 동안 버킷의 스토리지를 조회하려면 다음과 같은 쿼리를 실행하면 돼요:

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
				}
			}
		}
	}
}

Bandwidth

버킷의 시간별 업로드·다운로드를 조회해요. 결과는 전송률이 아닌 바이트 합계이며, 100 KiB보다 작은 전송은 제외돼요:

query R2BandwidthExample(
	$accountTag: string!
	$startDate: Time!
	$endDate: Time!
	$bucketName: string!
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			r2BandwidthUsageAdaptiveGroups(
				limit: 1000
				filter: {
					datetime_geq: $startDate
					datetime_lt: $endDate
					bucketName: $bucketName
				}
				orderBy: [datetimeHour_ASC]
			) {
				sum {
					bytesUpload
					bytesDownload
				}
				dimensions {
					datetimeHour
				}
			}
		}
	}
}

더 알아보기 (Learn more)