跳转到内容
搜索文档

指标和分析

最后更新 查看 MarkdownAgent 设置

在任意时刻,有两个图形化信息源可用于了解 Workers 流量:Workers 指标和基于 zone 的 Workers 分析。

Workers 指标通过显示 Workers 的性能和使用情况,帮助您诊断问题并了解 Workloads。如果您的 Worker 运行在 zone 的路由上或几个 zone 上,Workers 指标将显示 Worker 在每个 zone 上处理的流量以及站点收到的请求数。

Zone 分析显示分配给 zone 的所有 Workers 处理的流量。

Workers 指标

Workers 指标汇总单个 Worker 的请求数据(如果您的 Worker 跨多个域运行,并在 *.workers.dev 上运行,指标将汇总这些请求)。要查看 Worker 的指标:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。

    Go to Workers & Pages ↗
  2. Overview(概览) 中,选择 Worker 以查看其指标。

有两个指标可以帮助您了解 Worker 在特定时刻的健康状况:请求成功和错误指标,以及调用状态。

请求

第一个图表显示 Workers 运行时的历史请求计数,细分为成功请求、错误请求和子请求。

  • Total(总计):Worker 注册的所有传入请求。WAF 或其他安全功能阻止的请求不计入。
  • Success(成功):返回 Success 或 Client Disconnected 调用状态的请求。
  • Errors(错误):返回 Script Threw Exception、Exceeded Resources 或 Internal Error 调用状态的请求——请参阅调用状态了解错误来源的细分。

对于少于六小时的时间范围,请求流量数据可能在图表显示的最后几分钟出现下降。这并不反映流量下降,而是聚合和指标交付的轻微延迟。

子请求

子请求是通过在 Worker 内调用 fetch 触发的请求。抛出未捕获错误的子请求不会被计数。

  • Total(总计):通过在 Worker 内调用 fetch 触发的所有子请求。
  • Cached(已缓存):返回的缓存响应数量。
  • Uncached(未缓存):返回的未缓存响应数量。

每次执行的挂钟时间

Wall time 表示 Worker 调用开始到 Workers 运行时确定无需再运行 JavaScript 之间的 经过时间(毫秒)。具体而言,每次执行的挂钟时间图表测量 JavaScript 上下文 保持打开状态的挂钟时间——包括等待 I/O 的时间,以及在 Worker 的 waitUntil() 处理程序中执行的时间。挂钟时间 与 Worker 向客户端发送响应最后一个字节所需的时间不同——如果 waitUntil() 内的任务 在响应发送后仍在运行,挂钟时间可能更高;也可能更低。例如,返回具有 大响应体的响应时,Workers 运行时在某些情况下可以在所有字节 通过并发送之前确定无需再运行 JavaScript,并关闭 JavaScript 上下文。

每次执行的 Wall Time 图表使用蓄水池采样(reservoir sampling)将历史挂钟时间数据细分为相关分位数。了解更多关于解读分位数的信息。

每次执行的 CPU 时间

每次执行的 CPU Time(CPU 时间) 图表使用蓄水池采样将历史 CPU 时间数据细分为相关分位数。了解更多关于解读分位数的信息。在某些情况下,较高分位数可能看起来超出 CPU 时间限制 但未产生调用错误,这是因为 Workers 运行时有一种机制,允许低于 CPU 限制的请求结转 CPU 时间。

执行时长(GB-seconds)

Duration per request(每次请求时长) 图表显示每次 Worker 调用的历史时长(duration)。数据细分为相关分位数,与 CPU 时间图表类似。了解更多关于解读分位数的信息。了解 Worker 上的时长在您打算在 Worker 本身上进行大量计算时特别有用。

内存使用

Memory usage(内存使用) 图表显示 Worker 在每次调用时使用的 V8 isolate 内存量,使用蓄水池采样细分为 P50、P90、P99 和 P999 百分位数。更多信息请参阅解读分位数

Workers 在 V8 isolates 中运行,每个 isolate 有 128 MB 内存限制。单个 isolate 可以处理许多并发请求并在它们之间共享内存。内存使用指标反映每次调用时此共享内存的使用量。

图表上的部署标记让您将内存变化与特定代码部署关联,更容易识别新版本是否引入了内存回归。

如果看到内存使用随时间呈上升趋势,这可能表示内存泄漏。在本地使用 DevTools 内存分析 采集堆快照,识别导致高内存消耗的特定对象。

调用状态

要查看调用状态:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。

    Go to Workers & Pages ↗
  2. 选择 Worker。

  3. Metrics(指标) 中找到 Summary(摘要) 图表。

  4. 选择 Errors(错误)

Worker 调用状态指示 Worker 是否成功执行,或在 Workers 运行时中未能生成响应。调用状态与 HTTP 状态码 不同。在某些情况下,Worker 调用成功但由于 Workers 运行时之外遇到的另一个错误而未生成成功的 HTTP 状态。某些调用状态会导致向客户端返回 Workers 错误代码

调用状态 定义 Workers 错误代码 GraphQL 字段
Success Worker 成功执行 success
Client disconnected HTTP 客户端(即浏览器)在请求完成前断开连接 clientDisconnected
Worker threw exception Worker 抛出未处理的 JavaScript 异常 1101 scriptThrewException
Exceeded resources¹ Worker 超出运行时限制 1102, 1027 exceededResources
Internal error² Workers 运行时遇到错误 internalError

¹ Exceeded Resources 状态可能在 Worker 超出运行时限制 时出现。最常见原因是 CPU 时间过多,也可能是 Worker 超出启动时间或免费套餐限制。

² Internal Error 状态可能在 Workers 运行时因系统内部故障而无法处理请求时出现。这些错误不是由 Worker 代码或任何资源限制引起的。Internal Error 状态的请求很少见,正常操作期间可能出现一些。这些请求不计入计费用量。如果您注意到 Internal Error 状态请求率升高,请查看 www.cloudflarestatus.com

要进一步调查异常,请使用 wrangler tail

请求时长

请求时长图表显示 Worker 响应请求所需的时间,包括代码执行和等待 I/O 的时间。请求时长图表目前仅在 Worker 启用了 Smart Placement 时可用。

与仅测量 Worker 活跃时间的执行时长 不同,请求时长测量从请求进入数据中心到交付响应的时间。

数据显示启用 Smart Placement 的请求与禁用 Smart Placement 的请求(默认情况下,1% 的请求路由时禁用 Smart Placement)的时长对比。图表显示直方图,x 轴为时长,y 轴为落入相应时长的请求百分比。

指标保留

Worker 指标最多可查看过去三个月,最大增量为一周。

Zone 分析

Zone 分析汇总为 zone 定义的任何路由 分配的所有 Workers 的请求数据。

要查看 zone 指标:

在 Cloudflare 仪表板中,前往 zone 的 Workers Analytics(Workers 分析) 页面。

Go to Workers ↗

Zone 数据可在过去 30 天内按时间范围筛选。仪表板包含以下图表和信息。

子请求

此图表显示子请求——通过在 Worker 内调用 fetch 触发的请求——按缓存状态细分。

  • Uncached(未缓存):由源站服务器或直接响应子请求的其他服务器直接应答的请求。
  • Cached(已缓存):由 Cloudflare 缓存 应答的请求。随着 Cloudflare 缓存更多内容,它会加速内容交付并减少源站负载。

带宽

此图表显示 zone 上所有 Workers 的历史带宽使用情况,按缓存状态细分。

状态码

此图表显示 zone 上所有 Workers 的历史请求,按 HTTP 状态码细分。

总请求数

此图表显示 zone 上所有 Workers 的历史数据,按成功请求、失败请求和子请求细分。这些请求类型按 HTTP 状态码分类,其中 200 级请求为成功,400500 级请求为失败。

GraphQL

Worker 指标由 GraphQL 提供支持。在 使用 GraphQL 查询 Workers 指标教程 中了解更多关于查询数据集的信息。

使用 Analytics Engine 的自定义分析

上述指标提供 Worker 性能和运行时行为的洞察。对于自定义的、特定于应用程序的分析,请使用 Workers Analytics Engine

Analytics Engine 适用于:

  • 自定义业务指标 — 跟踪特定于应用程序的事件,如注册、购买或功能使用情况。
  • 按客户分析 — 使用客户 ID 或 API 密钥等高基数维度记录数据。
  • 按用量计费 — 按客户统计 API 调用、计算单元或其他可计费事件。
  • 性能跟踪 — 使用自定义维度测量响应时间、缓存命中率或错误率。

写入 Analytics Engine 是非阻塞的,不会为 Worker 增加延迟。通过 Analytics Engine SQL API 使用 SQL 查询数据,或在 Grafana 中可视化。

请参阅 Analytics Engine 示例 开始使用。

这篇文档对您有帮助吗?