Skip to content
返回云服务

Cloudflare Analytics Engine

从 Workers 写分析事件并用 SQL 查询 — 无需管理基础设施的时序存储。

Cloudflare高级

为什么

Analytics Engine 从 Workers 摄取百万事件/秒并支持 SQL 查询 — 无需运行 Clickhouse/Kafka。免费:1000 万写/天,按查询付费。

适合产品分析和 API 指标。

何时使用

用于 API 请求指标、功能采用追踪和按用户分析。避免高基数数据(唯一用户 ID 作索引膨胀存储)。

如何做

1. 创建数据集 — wrangler analytics-engine create my-dataset 2. 绑定 — [[analytics_engine_datasets]] binding="ANALYTICS" dataset="my-dataset" 3. 写 — env.ANALYTICS.writeDataPoint({ blobs: ["user123"], doubles: [1.5], indexes: ["api"] }) 4. 查询 — 通过面板或 REST API SQL,时间桶聚合 5. schema — blobs(字符串)、doubles(数字)、indexes(低基数过滤) 6. 保留 — 可配置,默认 90 天 7. 可视化 — Grafana via SQL 数据源或 Cloudflare 面板

示例

// 把每个 API 请求记为分析事件 export default { async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { const start = Date.now(); const response = await handleRequest(request, env); const duration = Date.now() - start; ctx.waitUntil(env.ANALYTICS.writeDataPoint({ blobs: [new URL(request.url).pathname, request.method, request.headers.get("cf-ipcountry") || ""], doubles: [duration, response.status], indexes: [env.API_VERSION], // 低基数过滤 })); return response; }, }; // 查询:过去 24 小时按路径平均延迟 // SELECT blob1 AS path, AVG(double1) AS avg_ms FROM my_dataset // WHERE timestamp > NOW() - INTERVAL '1' DAY GROUP BY blob1 ORDER BY avg_ms DESC

常见问题

  • ⚠高基数索引 — 用户 ID 作索引膨胀存储,改用 blobs
  • ⚠写速率限制 — 每 Worker 1000 写/秒,用数组批量 writeDataPoint
  • ⚠大数据集查询延迟 — 用 WHERE timestamp 限时,避免全表扫描

最佳实践

  • ✓低基数过滤用 indexes — API 版本、env、区域;非用户 ID
  • ✓批量写 — 数组收集事件,每请求通过 ctx.waitUntil 写一次
  • ✓Worker 中预聚合 — 写汇总(count、sum)非原始事件,存储减 100 倍

常见问题解答

什么是Cloudflare Analytics Engine?它解决什么问题?

从 Workers 写分析事件并用 SQL 查询 — 无需管理基础设施的时序存储。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Cloudflare Analytics Engine?

两步即可跑通:① 创建数据集 — wrangler analytics-engine create my-dataset;② 绑定 — [[analytics_engine_datasets]] binding="ANALYTICS" dataset="my-dataset"。建议先用免费套餐验证流程,再接入生产环境。

Cloudflare Analytics Engine 最容易踩的坑是什么?

最高频的问题是:高基数索引 — 用户 ID 作索引膨胀存储,改用 blobs。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Cloudflare Analytics Engine 的最佳实践有哪些?

Cloudflare Analytics Engine 的最佳实践包括:低基数过滤用 indexes — API 版本、env、区域;非用户 ID;批量写 — 数组收集事件,每请求通过 ctx.waitUntil 写一次;Worker 中预聚合 — 写汇总(count、sum)非原始事件,存储减 100 倍。其中首条「低基数过滤用 indexes — API 版本、env、区域;非用户 ID」应作为团队默认规范写入 IaC 模板。

Cloudflare Analytics Engine 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Cloudflare Analytics Engine 多数提供免费套餐,先在免费额度内验证再放量。