您可以将您的 Firebase 项目链接到 Cloud Logging,以查看、搜索和过滤每个托管站点的 Web 请求日志。这些日志来自 Firebase 自动提供的 CDN,因此对您站点的每个请求和相关请求数据都会被记录下来。
以下是您使用 Cloud Logging 日志执行的一些操作。访问此页面的每个部分以了解详细信息。
更好地了解您的站点— 了解您访问站点的时间和地点、站点的响应状态、最终用户请求的延迟等等。
使用查询过滤您的日志——利用自动收集的数据来过滤和绘制与每个请求或您的站点相关的数据。
使用基于日志的指标- 根据预定义的系统指标或用户定义的指标创建 Cloud Monitoring 图表和警报策略。
将日志导出到其他 Google Cloud 工具- 在其他工具(如 BigQuery 和 Data Studio)中使用日志数据进行更强大的分析和关联。
如果您的项目中有多个托管站点,您可以选择要导出日志的托管站点。然后,您可以按托管站点甚至域过滤和查看日志数据。通过选择特定的托管站点来导出日志,您还可以控制为您的项目处理的数据量。
Cloud Logging 每月(每个项目)最多可免费使用 50GB 数据。这种使用可以来自任何使用 Cloud Logging 的 Google 或 Firebase 产品。您可以将您的项目升级到 Blaze 定价计划以解锁额外的付费使用。详细了解Cloud Logging 的定价。
您可以监控和管理 Cloud Logging 和计费:
使用Google Cloud 定价计算器估算您的 Cloud Logging 账单。
通过创建排除来限制日志。
设置警报以帮助控制成本。
请注意,特定请求的日志条目可能会延迟,或者在极少数情况下会被删除。虽然日志可用于了解请求,但它们可能无法反映出现在您的项目使用情况和计费中的真实使用情况。
链接到 Cloud Logging 并监控您的数据使用情况
链接到 Cloud Logging 并导出 Web 请求日志
单击 Firebase 控制台中Cloud Logging集成卡中的链接。
要链接或取消链接 Cloud Logging,您需要绑定到以下任何角色的权限: project Owner 或 Editor或Firebase Develop Admin 。
按照屏幕上的说明选择您的哪些托管站点应将日志导出到 Cloud Logging。
如果您已经有一个或多个活动的托管站点,链接工作流会显示每个托管站点的日志的估计数据使用水平。该值是根据过去 30 天估算的。
链接到 Cloud Logging 后,对您的托管站点的任何新请求的日志通常会在发出请求后的 30 分钟内显示。
您还可以取消 Firebase 托管与 Cloud Logging 的关联,这会停止将 Web 请求日志导出到 Cloud Logging。
监控日志的数据使用情况
链接到 Cloud Logging 后,您可以查看托管站点日志的数据使用级别:
在 Firebase 控制台的Cloud Logging集成卡中
在 Google Cloud Console 的日志查看器界面中(
log_bytes
指标)
Cloud Logging 每月(每个项目)最多可免费使用 50GB 数据。这种使用可以来自任何使用 Cloud Logging 的 Google 或 Firebase 产品。您可以将您的项目升级到 Blaze 定价计划以解锁额外的付费使用。详细了解Cloud Logging 的定价。
您可以监控和管理 Cloud Logging 和计费:
使用Google Cloud 定价计算器估算您的 Cloud Logging 账单。
通过创建排除来限制日志。
设置警报以帮助控制成本。
请注意,特定请求的日志条目可能会延迟,或者在极少数情况下会被删除。虽然日志可用于了解请求,但它们可能无法反映出现在您的项目使用情况和计费中的真实使用情况。
更好地了解您的网站
Google Cloud Console 中的日志查看器界面提供了使用查询和内置过滤器和数据面板查看特定日志和数据的工具。在下面的下一节中了解有关使用查询过滤日志的更多信息。
您网站的流量具体来自哪里?
您可以查看有关每个请求的信息,包括源 IP、referer、城市和状态。用户何时访问您的网站?
您可以使用直方图面板查看特定时间范围内的分布情况。这可以让您深入了解应用程序使用的正常高峰和低谷,并揭示任何意外的流量高峰。最终用户请求的状态分布是什么?
您可以查看每个请求的状态,甚至可以诊断收到错误的请求。您可以按Critical
、Error
或Warning
过滤日志。您的网站需要多长时间来响应请求?
您可以使用每个日志中捕获的latency
值来查看每个请求的站点延迟。您的站点是否利用了内容缓存?
每个日志都包含一个cacheHit
字段,告诉您您的站点资源是否从 Hosting 的 CDN 缓存中快速提供,或者它是否必须完成到 Hosting 后端的完整行程。这可以帮助您充分利用 Firebase 的全球 CDN 来提高网站的性能。例如,您可以使用数据来微调静态资产和动态内容的缓存习惯。您各个域的流量分布情况如何?
如果您有多个域或托管站点,则可以按域或站点过滤日志。这使您可以查看流量的分布情况。按域过滤时,您可以跟踪访问最频繁的域。
使用查询过滤日志
要了解如何使用查询过滤日志,请访问使用日志查看器查询示例和构建日志查询。下表描述了可用于这些查询的字段。
对于托管,这里有一些查询的初始过滤器:
- 资源(
resource.type
) —firebase_domain
(Firebase 托管站点域) - 日志名称(
logName
) —webrequests
(Firebase Hosting)
每个日志条目都有一个预定义的结构和可查询的字段(请参阅LogEntry )。对于 Hosting,某些字段是 HTTP 请求的标准字段,但还有其他字段值来自 Hosting 对每个请求运行的处理。
场地 | 描述 |
---|---|
Firebase 托管将以下字段存储在日志条目的httpRequest 对象中。这些字段在 HTTP 规范中定义。 | |
cacheHit | Hosting CDN 是否在缓存中有响应资源 |
latency | 请求持续时间,以秒为单位,后缀为s (例如1.256s ) |
protocol | 用于请求的协议(例如, HTTP/1.1 、 HTTP/2 、 websocket ) |
referer | 指向当前请求页面的链接的前一个网页的地址(如果存在) |
remoteIp | 请求的原始客户端 IP |
requestMethod | 请求方法( GET 、 POST 、 PUT 等) |
requestSize | 请求的大小(以字节为单位) |
requestUrl | 请求的完整 URL(例如,https://foo.web.app/bar 或https://custom.domain.com?query=param ) |
responseSize | 以字节为单位的 HTTP 响应大小 |
serverIp | 未填充 |
status | HTTP 响应状态(例如200 或404 ) |
userAgent | 请求的 user-Agent 标头 |
Firebase 托管将附加字段存储在日志条目的jsonPayload 对象中。 | |
acceptEncoding | (来自 HTTP 请求)客户端支持哪种内容编码,通常是压缩算法(例如gzip 或compress ) |
billable | 您的项目是否为该请求付费 |
customDomain | 请求是否针对自定义域 |
hostname | 发出请求的主机名 |
remoteIpCountry | 请求的发起国 |
remoteIpCity | 请求的发起城市 |
使用基于日志的指标
您可以查看和构建基于日志的指标,然后在 Cloud Monitoring 中使用这些指标来创建图表和提醒政策。
利用自动记录的预定义系统指标,例如特定时间段内发生的日志记录事件的数量。
为您的项目创建用户定义的指标。您可以计算与给定查询匹配的日志条目数,或使用匹配的日志条目跟踪特定值。您可以使用正则表达式进行过滤。
使用Cloud Monitoring记录包含特定消息的日志条目数或提取日志条目中报告的延迟信息。然后,您可以在图表和警报策略中使用这些指标。
Firebase 托管还会生成以下特定于托管的日志记录指标。这些指标并不特定于日志条目,而是特定于整个托管站点。
log_bytes
:每个站点的数据使用总字节数response_count
:为网站撰写的回复总数此指标包括 HTTP 状态字段,因此您可以按状态绘制 HTTP 响应(作为示例)。
将日志导出到其他 Google Cloud 工具
您还可以将站点的日志导出到其他 Google Cloud 工具,例如 Cloud Monitoring 或 BigQuery,例如:
使用Cloud Monitoring ,您可以创建可在图表和提醒政策中使用的基于日志的指标。
使用BigQuery ,您可以执行以下任一操作:
- 使用 Data Studio 生成托管数据的仪表板。
- 运行查询以更深入地了解您的请求(平均响应大小、缓存命中与未命中等)。
- 了解您的用户实际请求的 URL。
- 将您的托管数据与您导出到 BigQuery 的其他 Firebase 数据相结合,并以新的方式进行查询。