Workers Analytics Engine 针对可使用 Grafana 等工具可视化的时序 analytics 进行了优化。从 runtime 写入的每个事件都会自动填充 timestamp 字段。
我们建议使用 Altinity plugin for Clickhouse ↗ 从 Grafana 查询 Workers Analytics Engine。
按以下方式配置插件:
- URL:
https://api.cloudflare.com/client/v4/accounts/<account_id>/analytics_engine/sql。将<account_id>替换为你的 32 字符 account ID(可在 Cloudflare 仪表板中获取)。 - 关闭所有 auth 设置。
- 添加名为
Authorization的自定义 header,值设置为Bearer <token>。将<token>替换为合适的 API token 字符串(更多信息请参阅 SQL API 文档)。 - 无需设置其他选项。
在仪表板中使用时,通常希望按时间间隔聚合某个指标。可以通过对 timestamp 字段取整然后分组来实现。以下查询以这种方式取整和分组,然后在考虑采样的同时计算每个时间间隔的平均值。
SELECT
intDiv(toUInt32(timestamp), 60) * 60 AS t,
blob1 AS label,
SUM(_sample_interval * double1) / SUM(_sample_interval) AS average_metric
FROM dataset_name
WHERE
timestamp <= NOW()
AND timestamp > NOW() - INTERVAL '1' DAY
GROUP BY blob1, t
ORDER BY tAltinity 插件提供了一些有用的宏,可简化编写此类查询。宏需要在 query builder 中将 Column:DateTime 设置为 timestamp,然后可以如下使用:
SELECT
$timeSeries AS t,
blob1 AS label,
SUM(_sample_interval * double1) / SUM(_sample_interval) AS average_metric
FROM dataset_name
WHERE $timeFilter
GROUP BY blob1, t
ORDER BY t此查询将根据缩放级别自动调整取整时间,并筛选到当前显示的正确时间范围。