RUM 信标是一段 JavaScript 代码片段,当 Cloudflare 客户通过 Web Analytics 或 Observatory 启用 RUM 时运行。当用户访问客户的网站时,此脚本会在用户的浏览器中运行,其目的是收集与性能相关的数据(例如页面加载时间),并将其发送到 Cloudflare 系统进行处理。然后,这些数据会呈现给客户,为网站的性能和使用情况提供有价值的洞察。
可以通过两种方式将 RUM 信标脚本启用到网页中:
-
一键设置:对于已启用 Web Analytics 的通过 Cloudflare 代理的网站,只需启用自动注入选项,即可在 HTML 响应通过 Cloudflare 边缘网络传递到浏览器时,将代码片段_自动_注入到页面中。
-
手动设置:网站可以通过将代码片段嵌入到页面中来_手动_添加脚本。有关如何将代码片段手动插入 HTML 的更多信息,请参阅 Sites not proxied through Cloudflare 部分。
下载到浏览器后,RUM 信标脚本作为 JavaScript 在浏览器中运行。它从浏览器 API ↗ 收集性能数据,并将这些数据发送到 Cloudflare 进行处理。
从浏览器收集的数据汇总在下表中:
| 字段 | 示例 | 描述 | 收集方式 |
|---|---|---|---|
pageloadId |
0c698922-8d60-40bf-85ac-7982b5f8034d | 页面的唯一 ID。 | 在浏览器代码中生成。 |
referrer |
https://cfrumtest.com/ ↗ | 引荐页面 URL。 | 如果是多页应用 (MPA),则从 document.referrer ↗ 生成。如果是单页应用 (SPA),则从信标代码中存储先前 URL 的本地内存变量生成。 |
startTime |
1693488419352 | 与性能相关的时间戳的基准。 | performance.timeOrigin ↗ |
memory |
{ totalJSHeapSize: 39973671, usedJSHeapSize: 39127515, jsHeapSizeLimit: 4294705152 } |
测量内存堆大小。 | performance.memory ↗(已弃用) |
timings |
PerformanceTiming ↗ 对象 | 计时数据。 | performance.timing ↗(已弃用,当 timingV2 不可用时作为回退) |
timingV2 |
PerformanceNavigationTiming ↗ 数组 | 导航计时数据。 | performance.getEntriesByType("navigation") ↗ |
resources |
PerformanceResourceTiming ↗ 数组 | 资源计时数据。 | performance.getEntriesByType("resource") ↗ |
firstPaint |
PerformancePaintTiming ↗ 数组 | 绘制计时数据。 | performance.getEntriesByType("paint") ↗ |
firstContentfulPaint |
209 | First Contentful Paint 指标。 | web-vitals 模块 ↗ 1 |
FCP |
209 | First Contentful Paint 指标。 | web-vitals 模块 ↗ 1 |
LCP |
209 | Largest Contentful Paint 指标。 | web-vitals 模块 ↗ 1 |
CLS |
0.001 | Cumulative Layout Shift 指标。 | web-vitals 模块 ↗ 1 |
TTFB |
0.03 | Time to First Byte 指标。 | web-vitals 模块 ↗ 1 |
INP |
1.23 | Interaction to Next Paint 指标。 | web-vitals 模块 ↗ 1 |
landingPath |
https://cfrumtest.com/ ↗ | 着陆页 URL。 | performance.getEntriesByType("navigation") ↗ |
RUM 数据通常根据传入请求的路由方式,在最近的 Cloudflare 数据中心进行处理。这由多种因素决定,包括 Anycast ↗ 和 Unimog ↗。由于 RUM 数据不使用位置服务,它可能会在与其来源不同的国家或地区进行处理。虽然 RUM 服务作为正常 HTTP 请求处理过程的一部分,从信标接收客户端/源 IP 地址,但它会在最近的 Cloudflare 数据中心丢弃该 IP 地址,并且不会将其存储在核心数据库或日志中。
RUM 信标脚本不会在浏览器中存储任何数据,也不会访问任何存储数据,例如 cookies ↗、localStorage ↗、sessionStorage ↗、IP 地址或 IndexedDB ↗。我们收集的是来自浏览器性能 API ↗ 的性能数据。这些性能数据是临时的,仅与当前正在查看的网页相关。如果用户刷新浏览器,所有先前的性能数据都会消失,新的性能数据开始可用。这些数据不会从设备上的任何位置存储或访问,仅作为内存中数据可用。
客户可以选择全局启用 RUM,或将其应用范围限制为排除连接到 EEA/EU 中 Cloudflare 数据中心的用户。如果选择后者,RUM 信标不会为连接到位于以下国家/地区(ISO 代码)的 Cloudflare 数据中心的用户处理性能数据:AT、BE、BG、HR、CY、CZ、DK、EE、FI、FR、DE、GR、HU、IS、IE、IT、LV、LI、LT、LU、MT、NL、NO、PL、PT、RO、SK、SI、ES、SE、CH、GB。
Free 客户会自动启用 RUM(排除 EU 流量),如果愿意可以关闭它。其他套餐的客户可以根据需要启用 RUM。
