You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过Cloudflare GraphQL Analytic API获取指定URL访问量

解答

完全可以通过Cloudflare GraphQL Analytics API获取指定URL的访问量,你已经接入Cloudflare的前提下不需要额外新增统计链路,直接调用接口就能拉取对应历史数据。

具体实现说明

  • 核心使用httpRequestsAdaptiveGroups数据集查询即可,该数据集原生支持clientRequestHTTPHost(域名)、clientRequestHTTPPath(请求路径)维度过滤,可以精准匹配你要统计的目标URL。
  • 注意统计口径和前端埋点类工具(比如GA)的差异:
    • 默认统计范围是Cloudflare边缘节点收到的所有到达你站点的请求,包含爬虫、扫描器产生的请求,如果需要统计普通用户访问量,可以增加botManagement.score过滤条件,一般将得分阈值设为30以上即可筛掉绝大多数恶意bot流量。
    • 默认不会包含被Cloudflare WAF、DDoS防护直接在边缘拦截的请求,如果需要统计全量请求(含拦截量),可以删除对应响应状态码的过滤规则。
  • 可直接参考的基础查询模板:
query FetchSpecifiedUrlStats(
  $zoneId: String!
  $startTime: String!
  $endTime: String!
  $targetUrlPath: String!
) {
  viewer {
    zones(filter: {zoneTag: $zoneId}) {
      httpRequestsAdaptiveGroups(
        limit: 10000
        filter: {
          datetime_gt: $startTime
          datetime_lt: $endTime
          clientRequestHTTPPath: $targetUrlPath
          # 可选:过滤WAF拦截请求,不需要可删除
          edgeResponseStatus_ne: 403
        }
      ) {
        sum {
          visits # 会话维度的访问量,和常规PV统计口径更接近
          requests # 总请求数
        }
        dimensions {
          # 按小时聚合数据,可根据需要调整为datetimeFiveMinutes/datetimeDay等粒度
          datetimeHour
        }
      }
    }
  }
}
  • 额外注意:不同Cloudflare套餐对应的数据留存时长不同,免费版可查询最近30天的数据,Pro版支持查询最近1年的数据,企业版留存周期更长,拉取数据时不要超出你账号对应的可查时间范围。

内容的提问来源于stack exchange,提问作者Thiti-Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:22:18