Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

  1. 在点击链接Cloud纪录集成卡在火力地堡控制台。

    关联或取消关联Cloud纪录,你需要捆绑到以下任一角色的权限:项目所有者或编辑火力地堡的开发管理

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

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

链接到Cloud纪录后,对于任何新的请求到你的主机的网站日志通常会在提出该要求后30分钟出现。

您也可以取消链接火力地堡主机从Cloud纪录,其中停止Web请求原木出口到Cloud纪录。

监控日志的数据使用情况

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

更好地了解您的网站

日志查看器界面在谷歌云端控制台提供的工具来查看具体的日志和使用查询和数据内置过滤器和数据面板。在下面的下一部分中了解有关使用查询过滤日志的更多信息。

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

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

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

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

  • 您的网站是否利用了内容缓存?
    每个日志包含cacheHit域来告诉你,如果你的网站的资源已被托管的CDN缓存快速地提供,或者如果它有使全行到主机后端。这可以通过充分利用 Firebase 的全球 CDN 来帮助您提高网站的性能。例如,你可以利用这些数据来微调您的习惯缓存静态资产动态内容

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

使用查询过滤日志

要了解如何将日志与查询筛选,请使用日志查看器示例查询建筑日志查询。下表描述了可用于这些查询的字段。

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

  • 资源resource.type ) - firebase_domain (火力地堡托管站点域)
  • 登录名logName ) - webrequests (火力地堡主机)

每个日志条目都有一个预定义的结构和可查询的字段(见LogEntry )。对于托管,某些字段是 HTTP 请求的标准字段,但还有其他字段值来自托管对每个请求运行的处理。

场地描述
火力地堡托管存储以下领域中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请求的用户代理标头
火力地堡托管存储在其它字段jsonPayload日志条目的对象。
acceptEncoding (从HTTP请求)哪个内容编码,通常是一个压缩算法中,客户端的支持(例如, gzipcompress
billable您的项目是否为请求付费
customDomain请求是否针对自定义域发出
hostname请求所针对的主机名
remoteIpCountry请求的来源国
remoteIpCity请求的始发城市

使用基于日志的指标

您可以查看并构建基于日志的指标,然后利用这些指标在云监控创建图表和报警策略。

  • 杠杆预定义系统度量被自动记录,例如一个特定的时间周期内发生的记录事件的数量。

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

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

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

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

  • response_count :为网站书面答复总计数

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

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

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

  • 使用云监控,您可以创建基于日志的指标,您可以在图表和报警策略中使用。

  • 使用的BigQuery ,您可以执行下列任一操作:

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