Query Builder 帮助你编写结构化查询以调查和可视化遥测数据。Query Builder 搜索 Workers 可观测性数据集,目前包括 Workers Logs 存储的所有日志。
Query Builder 位于 Cloudflare 仪表板的 Observability(可观测性) 页面:
Go to Observability ↗Query Builder 对所有开发者可用,无需额外启用。查询搜索 Cloudflare 存储的所有 Workers Logs。若尚未启用 Workers Logs,可在 Worker 的 Wrangler 文件 中添加以下设置并重新部署 Worker。
{
"observability": {
"enabled": true,
"logs": {
"invocation_logs": true,
"head_sampling_rate": 1 // optional. default = 1.
}
}
}[observability]
enabled = true
[observability.logs]
invocation_logs = true
head_sampling_rate = 1-
在 Cloudflare 仪表板中,前往 Workers & Pages 页面。
Go to Workers & Pages ↗ -
选择你的 Worker。
-
在左侧导航面板中选择 Observability(可观测性),然后选择 Overview(概览) 选项卡。
-
选择 Visualization(可视化)。
-
可选:为 Filter、Group By、Order By 和 Limit 添加字段。更多信息请参阅查询组成。
-
可选:选择适当的时间范围。
-
选择 Run(运行)。每次更改时查询将自动运行。
Query Builder 支持多种可视化操作符,包括:
| 函数 | 参数 | 说明 |
|---|---|---|
| Count | n/a | 匹配查询条件的总行数 |
| Count Distinct | 任意字段 | 数据集中唯一值的出现次数 |
| Min | 数值字段 | 数据集中该字段的最小值 |
| Max | 数值字段 | 数据集中该字段的最大值 |
| Sum | 数值字段 | 数据集中该字段所有值的总和 |
| Average | 数值字段 | 数据集中该字段的平均值 |
| Standard Deviation | 数值字段 | 数据集中该字段的标准差 |
| Variance | 数值字段 | 数据集中该字段的方差 |
| P001 | 数值字段 | 0.1% 数据低于该字段值的阈值 |
| P01 | 数值字段 | 1% 数据低于该字段值的阈值 |
| P05 | 数值字段 | 5% 数据低于该字段值的阈值 |
| P10 | 数值字段 | 10% 数据低于该字段值的阈值 |
| P25 | 数值字段 | 25% 数据低于该字段值的阈值 |
| Median (P50) | 数值字段 | 50% 数据低于该字段值的阈值 |
| P75 | 数值字段 | 75% 数据低于该字段值的阈值 |
| P90 | 数值字段 | 90% 数据低于该字段值的阈值 |
| P95 | 数值字段 | 95% 数据低于该字段值的阈值 |
| P99 | 数值字段 | 99% 数据低于该字段值的阈值 |
| P999 | 数值字段 | 99.9% 数据低于该字段值的阈值 |
单个查询可添加多个可视化。每个可视化渲染一个图表。还会返回一个汇总表,显示原始查询结果。
所有方法都是聚合函数。大多数方法对日志事件中的特定字段进行操作。Count 是例外,它是返回匹配过滤条件的日志事件数量的聚合函数。
过滤器帮助返回匹配指定条件的列。过滤器有三个组成部分:键、操作符和值。
键是日志事件中的任意字段。例如,你可以选择 $workers.cpuTimeMs 或 $metadata.message。
操作符是评估为 true 或 false 的逻辑条件。请参阅下表了解支持的条件:
| 数据类型 | 有效条件(操作符) |
|---|---|
| 数值 | 等于、不等于、大于、大于或等于、小于、小于或等于、存在、不存在 |
| 字符串 | 等于、不等于、包含、不包含、正则、存在、不存在、开头为 |
数值字段的值是整数。字符串字段的值是任意字符串。
添加过滤器:
- 在 Filter(筛选) 部分选择 +。 2. 选择 Select key...(选择键...) 并
输入键名。例如
$workers.cpuTimeMs。 3. 选择操作符 并更改为最合适的操作符。例如Greater than。 4. 选择 Select value...(选择值...) 并输入值。例如100。
使用上述指定过滤器运行查询时,仅返回 $workers.cpuTimeMs > 100 的日志事件。
添加多个过滤器会使用 AND 操作符组合,意味着只有匹配所有过滤器的事件才会被返回。
Search 是文本过滤器,仅返回包含指定文本的事件。Search 可作为快速过滤机制,或搜索日志中的唯一可识别值。
Group By 将具有相同值的行合并为汇总行。例如,若查询添加 $workers.event.request.cf.country 作为 Group By 字段,汇总表将按国家/地区分组。
Order By 影响汇总表中结果的排序方式。若选择 asc,结果按升序排序——从小到大。若选择 desc,结果按降序排序——从大到小。
Limit 限制返回的结果数量。与 Order By 配合使用时,可用于返回「前 N」或「前 N 个」结果。
选择时间范围时,你指定要查找匹配事件的时间间隔。保留期取决于你的计划类型。
查询有三种视图:Visualizations、Invocations 和 Events。
Visualizations(可视化) 选项卡显示查询的图表和汇总表。
Invocations(调用) 选项卡显示所有日志,按调用分组,按时间戳排序。仅返回匹配查询条件的调用。
Events(事件) 选项卡显示所有日志,按时间戳排序。仅返回匹配查询条件的事件。Events(事件) 选项卡可自定义以在视图中添加其他字段。
建议保存可能在未来调查中重复使用的查询。你可以通过选择 Save Query(保存查询) 以名称、描述和自定义标签保存查询。查询在账户级别保存,账户中的所有用户均可访问。
保存的查询可通过从 Queries(查询) 选项卡选择相关查询重新运行。你可以编辑查询并保存编辑。
用户可以为查询加星标。加星标的查询对用户是唯一的,而非账户级别。
保存的查询可从 Queries(查询) 选项卡删除。若删除查询,该查询将对账户中的所有用户删除。
-
在 Cloudflare 仪表板中,前往 Observability(可观测性) 页面。
Go to Observability ↗ -
选择 Queries(查询) 选项卡。
-
在右侧选择三个点以获取更多操作。
-
选择 Delete Query(删除查询) 并按照说明操作。
保存的查询分配有唯一 URL,可与账户中的任何用户共享。
在此示例中,我们将编写查询以查找和调试所有返回 5xx 错误的路径。首先,我们创建基础查询。在此基础查询中,我们希望按
原始事件计数进行可视化。我们可以为 $workers.event.response.status 添加大于 500 的过滤器。
然后,我们按 $workers.event.request.path 和 $workers.event.response.status 分组,以识别受影响的请求数量。
结果显示 /agents/chat/default 路径一直出现 404 和 500。现在,我们可以为此路径应用过滤器并进行调查。
现在,我们可以通过选择 Invocations(调用) 选项卡进行调查。我们可以看到此错误有两条记录的调用。
我们可以展开单个调用以查看相关日志,并继续调试。
