如何从Cloud Logging分析Firebase Hosting的下载流量数据
GCP实现Firebase Hosting流量日志聚合分析方案
你需要的分析完全可以通过Google Cloud原生的日志工具实现,不需要额外接入第三方服务,具体操作如下:
方案1:直接使用Logs Explorer做即时聚合查询(无需额外配置,适合临时排查)
你已经完成了Firebase Hosting和Cloud Logging的关联,直接在Logs Explorer中使用内置的聚合查询功能即可实现你的需求,操作步骤:
- 打开Cloud Console的Logs Explorer页面,顶部时间选择器设置为你需要排查的24小时周期
- 在查询输入框中输入对应查询语句,点击「运行查询」即可得到结果
需求1:按总请求大小排序的请求URL列表
查询语句如下:
resource.type="firebase_hosting_site" | sum(httpRequest.responseSize) as total_traffic by httpRequest.requestUrl | sort desc(total_traffic)
返回结果中total_traffic为对应URL的总响应字节数,可自行除以1048576转换为MB单位方便阅读。
需求2:按总请求数据量排序的来源IP列表
查询语句如下:
resource.type="firebase_hosting_site" | sum(httpRequest.responseSize) as total_traffic by httpRequest.remoteIp | sort desc(total_traffic)
如果需要统计请求次数而非流量,将sum(httpRequest.responseSize)替换为count(*)即可。
方案2:导出日志到BigQuery做复杂长期分析(适合后续衍生需求)
如果需要做更复杂的多维度分析(比如按小时的流量趋势、User-Agent识别爬虫、IP归属地匹配、异常流量报警配置等),可以将日志导出到BigQuery后用标准SQL做任意查询:
- 配置路径:Cloud Logging → 接收器 → 创建接收器,筛选条件选择
resource.type="firebase_hosting_site",导出目标选择你新建的BigQuery数据集 - 日志同步完成后,即可用SQL实现任意维度的聚合统计,支持PB级日志的秒级查询。
常用排查优化提示
- 可以在查询语句中增加过滤条件排除无效请求,比如添加
httpRequest.status = 200只统计正常响应的请求,添加httpRequest.remoteIp != "你的测试IP"排除自己的测试流量 - 若要定位高频恶意请求,可额外增加
by httpRequest.remoteIp, httpRequest.requestUrl的双重分组,直接看哪个IP在高频请求大体积资源
内容的提问来源于stack exchange,提问作者Allen
相关产品推荐
相关产品推荐

