获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

使用 Cloud Logging 查看、搜索和过滤您网站的网络请求日志

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

您可以将您的 Firebase 项目链接到 Cloud Logging,以查看、搜索和过滤每个托管站点的 Web 请求日志。这些日志来自 Firebase 自动提供的 CDN,因此对您站点的每个请求和相关请求数据都会被记录下来。

以下是您使用 Cloud Logging 日志执行的一些操作。访问此页面的每个部分以了解详细信息。

如果您的项目中有多个托管站点,您可以选择要导出日志的托管站点。然后,您可以按托管站点甚至域过滤和查看日志数据。通过选择特定的托管站点来导出日志,您还可以控制为您的项目处理的数据量。

  1. 单击 Firebase 控制台中Cloud Logging集成卡中的链接

    要链接或取消链接 Cloud Logging,您需要绑定到以下任何角色的权限: project Owner 或 EditorFirebase Develop Admin

  2. 按照屏幕上的说明选择您的哪些托管站点应将日志导出到 Cloud Logging。

    如果您已经有一个或多个活动的托管站点,链接工作流会显示每个托管站点的日志的估计数据使用水平。该值是根据过去 30 天估算的。

链接到 Cloud Logging 后,对您的托管站点的任何请求的日志通常会在发出请求后的 30 分钟内显示。

您还可以取消 Firebase 托管与 Cloud Logging 的关联,这会停止将 Web 请求日志导出到 Cloud Logging。

监控日志的数据使用情况

链接到 Cloud Logging 后,您可以查看托管站点日志的数据使用级别:

更好地了解您的网站

Google Cloud Console 中的日志查看器界面提供了使用查询和内置过滤器和数据面板查看特定日志和数据的工具。在下面的下一节中了解有关使用查询过滤日志的更多信息。

  • 您网站的流量具体来自哪里?
    您可以查看有关每个请求的信息,包括源 IP、referer、城市和状态。

  • 用户何时访问您的网站?
    您可以使用直方图面板查看特定时间范围内的分布情况。这可以让您深入了解应用程序使用的正常高峰和低谷,并揭示任何意外的流量高峰。

  • 最终用户请求的状态分布是什么?
    您可以查看每个请求的状态,甚至可以诊断收到错误的请求。您可以按CriticalErrorWarning过滤日志。

  • 您的网站需要多长时间来响应请求?
    您可以使用每个日志中捕获的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.1HTTP/2websocket
referer指向当前请求页面的链接的前一个网页的地址(如果存在)
remoteIp请求的原始客户端 IP
requestMethod请求方法( GETPOSTPUT等)
requestSize请求的大小(以字节为单位)
requestUrl请求的完整 URL(例如,
https://foo.web.app/barhttps://custom.domain.com?query=param
responseSize以字节为单位的 HTTP 响应大小
serverIp未填充
status HTTP 响应状态(例如200404
userAgent请求的 user-Agent 标头
Firebase 托管将附加字段存储在日志条目的jsonPayload对象中。
acceptEncoding (来自 HTTP 请求)客户端支持哪种内容编码,通常是压缩算法(例如gzipcompress
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 数据相结合,并以新的方式进行查询。