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

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

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

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

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

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

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

    要关联或取消关联 Cloud Logging,您需要将权限绑定到以下任意角色:项目所有者或编辑者Firebase 开发管理员

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

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

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

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

监控日志的数据使用情况

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

更好地了解您的网站

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

  • 您网站的流量从何而来?
    您可以查看有关每个请求的信息,包括源 IP、引用者、城市和状态。

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

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

  • 您的网站需要多长时间来响应请求?
    您可以使用每个日志中捕获的latency值查看每个请求的站点延迟。

  • 您的网站是否利用了内容缓存?
    每个日志都包含一个cacheHit字段,以告知您网站的资源是否从 Hosting 的 CDN 缓存中快速提供,或者是否必须完整访问 Hosting 后端。这可以通过充分利用 Firebase 的全球 CDN 来帮助您提高网站的性能。例如,您可以使用这些数据来微调您的静态资产动态内容的缓存习惯。

  • 您的各个域的流量分布如何?
    如果您有多个域或托管站点,则可以按域或站点过滤日志。这使您可以查看您的流量是如何分布的。当您按域过滤时,您可以跟踪最常访问的域。

使用查询过滤您的日志

要了解如何使用查询过滤日志,请访问使用日志查看器的示例查询构建日志查询。下表描述了可用于这些查询的字段。

对于托管,以下是查询的一些初始过滤器:

  • 资源( resource.type ) — firebase_domain (Firebase 托管站点域)
  • 日志名称( logName ) — webrequests (Firebase 托管)

每个日志条目都有一个预定义的结构和可查询的字段(请参阅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请求的发起城市

使用基于日志的指标

您可以查看和构建基于日志的指标,然后在 Stackdriver Monitoring 中使用这些指标来创建图表和提醒政策。

  • 利用自动记录的预定义系统指标,例如在特定时间段内发生的日志记录事件的数量。

  • 为您的项目创建用户定义的指标。您可以计算与给定查询匹配的日志条目数,或使用匹配的日志条目跟踪特定值。您可以使用正则表达式进行过滤。

  • 使用Stackdriver Monitoring记录包含特定消息的日志条目数或提取日志条目中报告的延迟信息。然后,您可以在图表和警报策略中使用这些指标。

Firebase 托管还会生成以下托管特定的日志记录指标。这些指标并非特定于日志条目,而是特定于整个托管站点。

  • log_bytes :每个站点的数据使用总字节数

  • response_count :为站点编写的响应总数

    该指标包括 HTTP 状态字段,因此您可以按状态绘制 HTTP 响应(例如)。

将日志导出到其他 Google Cloud 工具

您还可以将站点的日志导出到其他 Google Cloud 工具,例如 Cloud Monitoring 或 BigQuery,例如:

  • 使用Stackdriver Monitoring ,您可以创建可在图表和提醒政策中使用的基于日志的指标。

  • 使用BigQuery ,您可以执行以下任何操作:

    • 使用数据洞察生成托管数据的仪表板。
    • 运行查询以更深入地了解您的请求(平均响应大小、缓存命中与未命中等)。
    • 了解您的用户实际请求的 URL。
    • 将您的托管数据与您导出到 BigQuery 的其他 Firebase 数据相结合,并以新的方式进行查询。