如何通过Cloudflare GraphQL API筛选特定页面统计数据?
解决Cloudflare GraphQL API筛选特定页面流量的方法
要筛选特定页面的统计数据,你需要在httpRequests1dGroups的filter参数中添加requestUri字段的匹配条件——Cloudflare的GraphQL API里,requestUri对应请求的路径部分(不含域名),具体用法分两种场景:
1. 精确匹配单个页面
如果要精准统计example.com/thispage的流量,直接匹配路径/thispage即可,修改后的查询代码如下:
$query = [ "query" => "{ viewer { zones(filter: {zoneTag: \"$zone_id\"}) { httpRequests1dGroups(limit: 30, filter: { date_gt: \"$startDate\", date_lt: \"$endDate\", requestUri: { eq: \"/thispage\" } }) { sum { requests, pageViews } } } } }" ];
2. 模糊匹配一类页面
如果要匹配包含/thispage的所有路径(比如带参数的/thispage?param=1),可以用matches结合正则表达式:
$query = [ "query" => "{ viewer { zones(filter: {zoneTag: \"$zone_id\"}) { httpRequests1dGroups(limit: 30, filter: { date_gt: \"$startDate\", date_lt: \"$endDate\", requestUri: { matches: \"/thispage.*\" } }) { sum { requests, pageViews } } } } }" ];
注意:requestUri只包含路径部分,不需要带上域名example.com,Cloudflare会自动关联当前zone的域名数据。
内容的提问来源于stack exchange,提问作者Iniciante
相关产品推荐
相关产品推荐

