跳转到内容
搜索文档

Waiting Room 分析

最后更新 查看 MarkdownAgent 设置

Waiting Room Analytics (Waiting Room 分析) 使您可以将通过 Waiting Room 的流量与 Waiting Room 设置进行比较,从而获得历史洞察。数据保留过去 30 天。

使用 Waiting Room 分析,您可以:

  • 评估通过 Waiting Room 并进入您网站的峰值流量。
  • 确定用户在 Waiting Room 中花费了多长时间。
  • 使用分析来帮助校准您的 Waiting Room 设置。

​仪表板分析

要在仪表板中访问您的 Waiting Room 的分析数据:

  1. 在 Cloudflare 仪表板中,转到 Waiting Room(等候室) 页面。

    Go to Waiting Room ↗
  2. 展开您想要查看指标的 Waiting Room,以显示您的 Waiting Room 分析的预览。该预览为您提供过去 24 小时内通过您 Waiting Room 的峰值流量的洞察,包括:最大活跃用户数、最大排队用户数以及排队用户的典型排队时间。

  3. 选择“Waiting Room Analytics”部分下的 View More,以获取有关您的 Waiting Room 的更多历史分析数据。

  4. 显示的所有指标的时间范围默认为过去 24 小时。要更改时间范围,请从下拉菜单中进行选择。您可以选择过去 30 天内任何至少 30 分钟的时间范围。

事件分析

如果您的 Waiting Room 有已完成的预定事件,您可以通过展开您感兴趣的 Waiting Room 的行并选择事件时间来快速访问事件的分析。该链接将打开该 Waiting Room 的分析视图,包括从预排队期间到事件结束的信息。

要保存此事件信息,您可以选择 Download data(下载数据)Print report(打印报告)。如果您删除了事件,时间段链接将不再显示在您的仪表板中。如果您编辑事件的时间,时间段链接也会随之更新。

如果您没有获得有关事件分析的链接,可能是发生了以下情况之一:

  • 您的事件尚未发生。
  • 您的事件开始于超过 30 天前。

指标

这些是分析仪表板中可用的指标及其计算方式。

排队时间(Time in queue)

排队时间 (Time in queue) 汇总值通过指示排队用户等待进入应用程序所花费的时间,使您深入了解用户体验。它显示了在您选择的时间段内,典型用户的等待时间,以及等待时间最长的人的等待时间。这些值表明了您的 Waiting Room 设置结合其流量对等待时间产生的影响。

如果等待时间高于您的预期,并且您觉得这样做合适,您可以考虑采取以下任何或全部操作:

  • 增加配置的 total_active_users 值。
  • 增加配置的 new_users_per_minute 值。
  • 减少 session_duration
  • 禁用 Session renewal(会话续订)

Time on origin(在源站的时间)

Time on origin(源站时间) 汇总值估算用户在离开之前,在您的 Waiting Room 所涵盖的页面上花费的时间。对于所选的时间段,您将能够访问典型用户在源站的估算停留时间,以及在您的网站上花费时间最多的人的源站时间。请记住,如果您禁用了会话续订,并且没有进行主动排队,用户将每隔 session_duration 分钟获得一个新的 Waiting Room 会话。因此,这些用户可能会停留多个会话。每次会话到期时,这些用户的源站时间就会重新开始计算。

根据源站时间值,您可以得出以下一些结论。

在以下情况下,您可能希望增加会话持续时间(给用户更多时间进行子请求)和/或启用会话续订:

  • 您禁用了会话续订。
  • 您遇到频繁且主动排队,并且等待时间长。
  • 典型的源站时间约为配置的会话持续时间的 70%。

这些可能表明用户需要更多时间在您的网站上完成其所需任务。

在以下情况下,您可能希望减少会话持续时间和/或禁用会话续订:

  • 前 5% 的源站时间不到配置的会话持续时间的 70%。
  • 您看到很长的排队时间,并且不想增加流量限制。

这些可能表明用户不需要在您的网站上待那么多时间,且正在占用您源站上的名额。

活跃用户与排队用户对比

活跃用户对比排队用户图表是一个时间序列图,它显示了您的 Waiting Room 所涵盖的任何 URL 上达到的最大活跃用户数以及最大排队用户数。系统将显示这些值与您配置的活跃用户目标阈值的比较。

新用户是对 Waiting Room 所涵盖的任何 URL 发出的全新请求。如果没有 Waiting Room cookie 绑定到该请求,Waiting Room 会将该请求视为新请求。一旦发出请求,就会下发一个 Waiting Room cookie。如果存在活跃队列,该用户将被视为排队用户。一旦该用户通过队列进入网站,他们就变成了活跃用户。只要他们继续每 session_duration 分钟至少向 Waiting Room URL 发出一次 HTTP 请求,他们就会保持活跃状态。

为了识别并聚焦于峰值流量,请选择一个较长的时间段,例如 30 天。然后,将光标拖动到您希望以更高粒度查看的任何时间段的左右两边以进行放大。您可以放大直到每个柱形图代表一分钟的时间间隔。页面上的所有其他指标都将自动更新,以反映所选时间段的数据。

要检查特定时间点的更多细节,请将鼠标悬停在图表上的条形图上。这会显示一个工具提示,指示该条形图代表的时间段内的以下内容:

  • 达到的最大活跃用户数
  • 达到的最大排队用户数
  • 配置的活跃用户目标值

低于您配置的限制时也可能发生排队,有时活跃用户可能会超出您配置的限制。有关更多信息,请参阅排队激活部分。

每分钟新用户(New users per minute)

每分钟新用户 (New users per minute) 图表显示每分钟通过 Waiting Room 到达您的源站的新用户数,并与配置的“每分钟新用户”目标阈值进行对比。与活跃用户图表一样,您可以通过高亮显示您感兴趣的时间段的左右两边进行放大,这会更新另一个图表以及汇总值。在缩小视图时,会对每个数据点进行平均计算。因此,当您放大时,数值可能会出现波动。

Turnstile Widget 流量

Turnstile 小组件流量图表显示了每分钟发出的质询数量,以及这些质询所遇到的流量分布。流量分为三大类:

  • Likely Human (可能是人类) - 这代表成功解决的质询数。
  • Likely Bots (可能是机器人) - 这代表未解决的质询数。
  • Bots (机器人) - 这代表失败的质询数。

如果您的 Waiting Room 启用了无限队列选项,您将在图表上看到一条线,代表无限队列中机器人的刷新请求数。

​​GraphQL Analytics

您可以通过 GraphQL API 查询您的 Waiting Room 分析数据。Waiting Room 分析为您提供对您的 Waiting Room 近乎实时的可见性,使您能够可视化进入应用程序的流量以及它如何根据配置的限制进行管理。

以下是一些可供您开始使用的查询示例:

获取特定时段内的总活跃用户和每分钟新用户的数值。

这是一个提取指标值的简单查询。您可以使用 zone tag (区域标签) 过滤数据并查询 waitingRoomAnalyticsAdaptive 数据集。在这个示例中,我们仅对两个指标应用了此查询,但是您可以探索模式并从 GraphQL 数据集中获取原始值,而无需应用任何聚合方法。

Requestbash
{
  viewer {
    zones(filter: {zoneTag: "example-zone"}) {
      waitingRoomAnalyticsAdaptive(limit: 3, filter: {datetime_gt: "2023-03-05T19:14:30Z", datetime_lt: "2023-03-07T19:13:00Z", waitingRoomId: "example-waiting-room-id"}) { 
        totalActiveUsers
          newUsersPerMinutes
      }
    }
  }
Responsejson
{
  "data": {
    "viewer": {
      "zones": [
        {
          "waitingRoomAnalyticsAdaptive": [
            {
              "newUsersPerMinute": 77,
              "totalActiveUsers": 1023
            },
            {
              "newUsersPerMinute": 113,
              "totalActiveUsers": 1009
            },
            {
              "newUsersPerMinute": 99,
              "totalActiveUsers": 927
            }
          ]
        }
      ]
    }
  },
  "errors": null
}

找到特定时间段内总活跃用户和每分钟新用户的平均值,并以 15 分钟为周期对该数据进行聚合。

此查询计算总活跃用户和每分钟新用户的平均值。查询中的时间维度为 15 分钟,因此所选时间段的数据被聚合为 15 分钟间隔的数据。

Requestbash
{
  viewer {
    zones(filter: {zoneTag: "example-zone"}) {
      waitingRoomAnalyticsAdaptiveGroups(limit: 10, filter: {datetime_geq: "2023-03-15T04:00:00Z", datetime_leq: "2023-03-15T04:45:00Z", waitingRoomId: "example-waiting-room-id"}, orderBy: [datetimeFifteenMinutes_ASC]) {
        avg {
          totalActiveUsers
          newUsersPerMinute
        }
        dimensions {
          datetimeFifteenMinutes
        }
      }
Responsejson
{
  "data": {
    "viewer": {
      "zones": [
        {
          "waitingRoomAnalyticsAdaptiveGroups": [
            {
              "avg": {
                "newUsersPerMinute": 119,
                "totalActiveUsers": 1180
              },
              "dimensions": {
                "datetimeFifteenMinutes": "2023-03-15T04:00:00Z"
              }
            },
            {
              "avg": {
                "newUsersPerMinute": 146,
                "totalActiveUsers": 961
              },
              "dimensions": {
                "datetimeFifteenMinutes": "2023-03-15T04:15:00Z"
              }
            },
            {
              "avg": {
                "newUsersPerMinute": 144,
                "totalActiveUsers": 1015
              },
              "dimensions": {
                "datetimeFifteenMinutes": "2023-03-15T04:30:00Z"
              }
            }
          ]
        }
      ]
    }
  },
  "errors": null
}

计算特定时间段内的源站停留时间(第 50 百分位)和总等待时间(第 90 百分位)的加权平均值,并以一小时为周期聚合该数据。

该查询计算特定时间段内的指标的加权平均值,并按小时聚合。

Requestbash
{
  viewer {
    zones(filter: {zoneTag: "example-zone"}) {
      waitingRoomAnalyticsAdaptiveGroups(limit: 10, filter: {datetime_geq: "2023-03-15T04:00:00Z", datetime_leq: "2023-03-15T04:45:00Z", waitingRoomId: "example-waiting-room-id"}, orderBy: [datetimeHour_ASC]) {
        avgWeighted {
          timeOnOriginP50
          totalTimeWaitedP90
        }
        dimensions {
          datetimeHour
        }
      }
Responsejson
{
  "data": {
    "viewer": {
      "zones": [
        {
          "waitingRoomAnalyticsAdaptiveGroups": [
            {
              "avgWeighted": {
                "timeOnOriginP50": 99.19,
                "totalTimeWaitedP90": 1625.63
              },
              "dimensions": {
                "datetimeHour": "2023-03-15T04:00:00Z"
              }
            }
          ]
        }
      ]
    }
  },
  "errors": null
}

为什么我的 Waiting Room 没有数据?

如果您没有看到有关 Waiting Room 的任何历史数据,则以下一项或多项可能为真:

  • 在您所检查的时间段内,您的 Waiting Room 没有收到任何流量。
  • 在您所检查的时间段内,您的 Waiting Room 未启用。

这篇文档对您有帮助吗?