메트릭과 분석
KV가 제공하는 메트릭과 분석 대시보드 그리고 GraphQL Analytics API를 통한 조회 방법을 알아봐요. 계정의 모든 네임스페이스에 대한 요청과 저장 상태를 확인하고 프로그래밍 방식으로 조회할 수 있어요.
출처: 문서
본문
KV는 계정의 모든 네임스페이스에 걸친 요청과 저장을 검사할 수 있는 분석을 제공해요.
Cloudflare 대시보드 ↗︎ 차트에 표시되는 메트릭은 Cloudflare의 GraphQL Analytics API에서 조회해요. 메트릭은 GraphQL 또는 HTTP 클라이언트를 통해 프로그래밍 방식으로 접근할 수 있어요.
메트릭
KV는 현재 다음 메트릭을 제공해요:
| 데이터셋 | GraphQL 데이터셋 이름 | 설명 |
|---|---|---|
| 작업 (Operations) | kvOperationsAdaptiveGroups |
이 데이터셋은 KV 네임스페이스에 이루어진 작업으로 구성돼요. |
| 저장 (Storage) | kvStorageAdaptiveGroups |
이 데이터셋은 KV 네임스페이스의 저장 세부 정보로 구성돼요. |
메트릭은 지난 31일 동안 조회할 수 있으며 (그리고 보존돼요).
대시보드에서 메트릭 보기
KV에 대한 네임스페이스별 분석은 Cloudflare 대시보드에서 사용할 수 있어요. 데이터베이스의 현재 및 과거 메트릭을 보려면:
- Cloudflare 대시보드에서 Workers KV 페이지로 이동해요. Workers KV로 이동 ↗
- 기존 네임스페이스를 선택해요.
- Metrics 탭을 선택해요.
조회할 시간 창을 선택적으로 지정할 수 있어요. 기본값은 지난 24시간이에요.
GraphQL API로 조회하기
GraphQL Analytics API를 통해 KV 네임스페이스의 분석을 프로그래밍 방식으로 조회할 수 있어요. 이 API는 Cloudflare 대시보드와 동일한 데이터셋을 조회하며, GraphQL 인트로스펙션을 지원해요.
GraphQL Analytics API를 시작하려면 GraphQL Analytics API 인증 설정에 대한 문서를 따라 하세요.
GraphQL API를 사용해 KV의 데이터셋을 조회하려면 Cloudflare 계정 ID를 사용해 accountTag 필터를 제공해야 해요. KV의 GraphQL 데이터셋은 다음과 같아요:
kvOperationsAdaptiveGroupskvStorageAdaptiveGroups
예시
다음은 KV 분석 정보를 조회하는 데 사용할 수 있는 일반적인 GraphQL 쿼리예요. 이 쿼리들은 $accountTag, $date_geq, $date_leq, $namespaceId 변수를 사용하며, 이 변수들은 GraphQL 변수로 설정하거나 인라인으로 대체해야 해요. 이러한 변수들은 다음과 비슷해야 해요:
{
"accountTag": "<YOUR_ACCOUNT_ID>",
"namespaceId": "<YOUR_KV_NAMESPACE_ID>",
"date_geq": "2024-07-15",
"date_leq": "2024-07-30"
}
작업 (Operations)
주어진 namespaceId 와 주어진 날짜 범위 (start 와 end) 에 대해 read, write, delete, list 작업의 합계를 date 와 actionType 으로 그룹화해 조회하려면:
query KvOperationsSample(
$accountTag: string!
$namespaceId: string
$start: Date
$end: Date
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
kvOperationsAdaptiveGroups(
filter: { namespaceId: $namespaceId, date_geq: $start, date_leq: $end }
limit: 10000
orderBy: [date_DESC]
) {
sum {
requests
}
dimensions {
date
actionType
}
}
}
}
}
주어진 namespaceId 에 대해 주어진 날짜 범위 (start, end) 내에서 read 작업의 지연 분포를 조회하려면:
query KvOperationsSample2(
$accountTag: string!
$namespaceId: string
$start: Date
$end: Date
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
kvOperationsAdaptiveGroups(
filter: {
namespaceId: $namespaceId
date_geq: $start
date_leq: $end
actionType: "read"
}
limit: 10000
) {
sum {
requests
}
dimensions {
actionType
}
quantiles {
latencyMsP25
latencyMsP50
latencyMsP75
latencyMsP90
latencyMsP99
latencyMsP999
}
}
}
}
}
모든 KV 네임스페이스에 걸쳐 계정 전체의 read, write, delete, list 작업을 조회하려면:
query KvOperationsAllSample($accountTag: string!, $start: Date, $end: Date) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
kvOperationsAdaptiveGroups(
filter: { date_geq: $start, date_leq: $end }
limit: 10000
) {
sum {
requests
}
dimensions {
actionType
}
}
}
}
}
저장 (Storage)
주어진 날짜 범위의 매일마다 KV 네임스페이스의 저장 세부 정보 (keyCount 와 byteCount) 를 조회하려면:
query Viewer(
$accountTag: string!
$namespaceId: string
$start: Date
$end: Date
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
kvStorageAdaptiveGroups(
filter: { date_geq: $start, date_leq: $end, namespaceId: $namespaceId }
limit: 10000
orderBy: [date_DESC]
) {
max {
keyCount
byteCount
}
dimensions {
date
}
}
}
}
}
더 알아보기 (Learn more)
GraphQL Analytics API의 전체 기능과 인증 방법은 Cloudflare 분석 문서를 참고하세요. KV의 실제 동작 원리는 KV 작동 방식 문서에서 확인할 수 있어요.