KV 公开分析数据,允许你检查账户中所有命名空间的请求和存储情况。
Cloudflare 仪表板 ↗图表中显示的指标从 Cloudflare 的 GraphQL Analytics API 查询。你可以以编程方式通过 GraphQL 或 HTTP 客户端访问这些指标。
KV 目前公开以下指标:
| 数据集 | GraphQL 数据集名称 | 描述 |
|---|---|---|
| 操作 | kvOperationsAdaptiveGroups |
此数据集包含对 KV 命名空间执行的操作。 |
| 存储 | kvStorageAdaptiveGroups |
此数据集包含 KV 命名空间的存储详情。 |
指标可查询(并保留)过去 31 天的数据。
KV 的每个命名空间分析可在 Cloudflare 仪表板中查看。要查看数据库的当前和历史指标:
-
在 Cloudflare 仪表板中,前往 Workers KV 页面。
Go to Workers KV ↗ -
选择现有命名空间。
-
选择 Metrics(指标) 选项卡。
你可以选择查询的时间窗口。默认为过去 24 小时。
你可以通过 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"
}要查询给定 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
}
}
}
}
}要查询给定日期范围内 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
}
}
}
}
}