← Cloudflare Workers KV / kv / observability
Метрики и аналитика
KV предоставляет аналитику, которая позволяет анализировать запросы и хранение данных по всем пространствам имён в вашем аккаунте.
Метрики, отображаемые в Панель управления Cloudflare ↗ графики запрашиваются из Cloudflare GraphQL Analytics API. Вы можете получить доступ к метрикам программно через GraphQL или HTTP-клиент.
Метрики
На данный момент KV предоставляет следующие метрики:
| Набор данных | GraphQL Dataset Name | Описание |
|---|---|---|
| Операции | kvOperationsAdaptiveGroups |
Этот набор данных состоит из операций, выполненных с вашими пространствами имён KV. |
| Хранилище | kvStorageAdaptiveGroups |
Этот набор данных содержит сведения о хранилище ваших пространств имён KV. |
Метрики можно запрашивать (и они хранятся) за последние 31 день.
Просмотр метрик в панели управления
Аналитика KV по отдельным пространствам имён доступна в панели управления Cloudflare. Чтобы просмотреть текущие и исторические показатели базы данных:
-
На панели управления Cloudflare перейдите к разделу Workers KV страницу.
Перейдите в Workers KV ↗ -
Выберите существующее пространство имен.
-
Выберите Метрики на вкладке.
При необходимости можно выбрать временной интервал для запроса. По умолчанию используются последние 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 включают:
kvOperationsAdaptiveGroupskvStorageAdaptiveGroups
Примеры
Ниже приведены типичные запросы 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
}
}
}
}
}