INTEGRITY Документация

Метрики и аналитика

KV предоставляет аналитику, которая позволяет анализировать запросы и хранение данных по всем пространствам имён в вашем аккаунте.

Метрики, отображаемые в Панель управления Cloudflare ↗ графики запрашиваются из Cloudflare GraphQL Analytics API. Вы можете получить доступ к метрикам программно через GraphQL или HTTP-клиент.

Метрики

На данный момент KV предоставляет следующие метрики:

Набор данных GraphQL Dataset Name Описание
Операции kvOperationsAdaptiveGroups Этот набор данных состоит из операций, выполненных с вашими пространствами имён KV.
Хранилище kvStorageAdaptiveGroups Этот набор данных содержит сведения о хранилище ваших пространств имён KV.

Метрики можно запрашивать (и они хранятся) за последние 31 день.

Просмотр метрик в панели управления

Аналитика KV по отдельным пространствам имён доступна в панели управления Cloudflare. Чтобы просмотреть текущие и исторические показатели базы данных:

  1. На панели управления Cloudflare перейдите к разделу Workers KV страницу.

    Перейдите в Workers KV ↗
  2. Выберите существующее пространство имен.

  3. Выберите Метрики на вкладке.

При необходимости можно выбрать временной интервал для запроса. По умолчанию используются последние 24 часа.

Запрос через GraphQL API

Вы можете программно запрашивать аналитику по своим пространствам имён KV через GraphQL Analytics API. Этот API запрашивает те же наборы данных, что и панель управления Cloudflare, и поддерживает GraphQL интроспекция.

Чтобы начать использовать GraphQL Analytics API, следуйте документации по настройке Аутентификация для GraphQL Analytics API.

Чтобы получить наборы данных KV через GraphQL API, необходимо указать accountTag фильтр с вашим Cloudflare Account ID. Наборы данных GraphQL для KV включают:

Примеры

Ниже приведены типичные запросы GraphQL, которые можно использовать для получения информации об аналитике KV. В этих запросах используются переменные $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"
}

Операции

Чтобы запросить суммарное количество операций чтения, записи, удаления и получения списка для указанного namespaceId и за заданный диапазон дат (start и end), сгруппированные по 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):

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:

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

Хранилище

Чтобы запросить сведения о хранилище (keyCount и byteCount) пространства имён KV за каждый день указанного периода:

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