请求日志记录概览

媒体 CDN 会将每个 HTTP 请求记录到 Cloud Logging。这些请求 包含对 EdgeCacheService 资源的客户端请求,以及来自 将 EdgeCacheOrigin 资源发送到配置的缓存填充来源。日志是 通常以近乎实时的方式传送。这包括 记录日志,可导出到 Cloud Storage 和 Pub/Sub。

日志条目包含以下类型的信息:

  • 大多数 Google Cloud 日志中显示的常规信息,例如严重性、 项目 ID、项目编号和时间戳。
  • HttpRequest 日志 字段。
  • 结构载荷中有关请求的其他元数据,包括 以下:

    • 客户端 ASN
    • 客户端位置数据
    • 用于执行响应的缓存 ID(城市)
    • 首字节时间 (TTFB) 和首字节时间 (TTLB),以毫秒为单位, 用于 HTTP 级别响应
    • TLS SNI 主机名
    • 使用的 TLS 版本
    • 通用媒体客户端数据 (CMCD) 信息

缓存专用字段

媒体 CDN 日志的 jsonPayload 对象包含元数据 以及媒体 CDN 传送对象的方式、 以及所遇到的任何错误状态

下表显示了这些字段以及示例值。

字段 示例值 详细信息
backendInitialLatency 0.126644940s

Duration 它需要后端最初响应请求。从以下时间开始衡量: CDN 已完成代理到源站的请求,直到 CDN 开始接收 响应字节数。

此字段仅显示在来自 EdgeCacheOrigin 资源的缓存填充日志中。

backendLatency 0.126666342s

后端完全响应请求所需的时长。从 CDN 开始衡量 已完成将请求代理到源站的操作,直到 CDN 收到完整的 从后端返回响应

此字段仅出现在 EdgeCacheOrigin 资源的缓存填充日志中。

cacheId maa-123456 离缓存最近的城市的 IATA(机场)代码和缓存的不透明标识符 实例。如果需要多层缓存来传送请求, 部分缓存未命中,则针对 例如 del-234567, bom-345678, sin-456789,其中最右边的缓存是 距离用户最近的位置
cacheKeyFingerprint f63925711b0dd8a9ff861cd303774e6e

缓存键的不透明指纹。映射到 相同的缓存键。例如,查询参数 或主机不包括在内,则应 具有相同指纹。

如果您的请求总数与 唯一指纹,则可能表示缓存键 。

cacheMode USE_ORIGIN_HEADERS 在此路由上配置的 cdnPolicy.cacheMode 与此请求匹配。
cacheStatus

Cache hit: hit

Full cache miss: fetch, miss, miss

用户和 源标记,最右边的值表示距离 。如需详细了解如何解读此字段, 请参阅缓存状态值
clientAsn ASN(自治系统编号),基于连接的 客户端的 IP 地址
clientCity Mountain View

发起请求的城市的名称,例如 加利福尼亚州山景城。

此标头也可以添加到请求和响应标头中, 镜像 client_city 标头变量。

clientRegionCode US

与客户端 IP 地址关联的国家/地区(或区域)。 这是一个 Unicode CLDR 区域代码,例如 US 或 FR。大多数 这些代码直接对应于 ISO-3166-2 代码。

此标头也可以添加到请求和响应标头中, 镜像 client_region 标头变量。

cmcd CMCD 密钥,这些键有助于告知客户端 服务。媒体 CDN 支持通过 HTTP 请求标头或查询参数,并且不会记录以下键的值: dl(截止期限)、nor(下一个对象请求)、 nrr(下一个范围请求)、ot(对象类型)、 rtp(请求的最大吞吐量)、sf(流处理格式)、 su(启动)、tb(最高比特率)、 或 v(CMCD 版本)。
enforcedSecurityPolicy Google Cloud Armor 边缘安全政策 适用于客户的请求其中包括有关政策名称、 以及已采取的措施。
httpTtfb 0.157228207s 从代理开始接收请求字节到 (未接收)。
latency 0.157415635s 从代理开始接收请求字节到完成写入的时长 向客户端返回响应
location 响应中的 Location 标头。
metroIataCode MAA 距离代理最近的城市的 IATA(机场)代码。
origin 代理响应的 EdgeCacheOrigin 资源。
originalRequestId 19d92668-3948-49d8-9244-25f8252043e4 分配给最初生成此响应的请求的唯一标识符。 仅当此值与缓存响应的 request_id 不同时,此字段才会显示。
originIp 用于联系从中发起请求的 EdgeCacheOrigin 资源的 IP 地址 该响应由代理传送。
proxyRegionCode US 代理所在的国家/区域。这是一个 Unicode CLDR 区域代码 例如 US 或 FR。对于大多数国家/地区,这些代码直接对应于 ISO-3166-2 代码。
proxyStatus 响应路径中中间 HTTP 代理的列表。值 由 RFC 9209 定义。 它对应于 proxy_status 动态标头变量
rangeHeader 请求中的 Range 标头。
requestId 4bde6381-cd17-47e1-8c2a-1aaa424a1156 代理为请求分配的唯一标识符。
tlsCipherSuite 009C 在 TLS 握手期间协商的加密套件。值为 4 由 IANA TLS 加密套件注册系统定义的十六进制数字,例如 009C(对于 TLS_RSA_WITH_AES_128_GCM_SHA256)。对于 未加密的客户端连接。
tlsSniHostname 由客户端在传输层安全协议 (TLS) 期间提供的服务器名称指示(如 RFC 6066 中所定义) 或 QUIC 握手。系统会将主机名转换为小写字母并移除结尾的所有英文句点。
tlsVersion TLS 1.3 客户端与 CDN 之间协商的 TLS 版本 SSL 握手。可能的值包括 TLS 1、TLS 1.1、TLS 1.2 和 TLS 1.3

日志条目示例

下面提供了从缓存提供的响应的示例日志条目:

{
  "insertId": "617fa16e-0000-2ac9-9993-d4f547fe67d4@a1",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
    "tlsVersion": "TLS 1.3",
    "tlsCipherSuite": "009C", // hex digits for the cipher negotiated
    "cacheId": "maa-132eed13faa13",
    "clientAsn": "9299", // AS the client is associated with
    "origin": "example_origin",
    "clientRegionCode": "IN",
    "metroIataCode": "bom",
    "clientCity": "Mumbai", // City name, in English
    "latency": "0.005105200s",
    "proxyStatus": "Google-Edge-Cache",
    "httpTtfb": "0.005056080s",
    "cacheMode": "FORCE_CACHE_ALL",
    "cacheKeyFingerprint": "c360ac18849b6336",
    "cacheStatus": "hit,stale",
    "enforcedSecurityPolicy": {
      "outcome": "ACCEPT",
      "configuredAction": "ACCEPT",
      "name": "example_policy",
      "priority": 1000
    },
    "originalRequestId": "19d92668-3948-49d8-9244-25f8252043e5",
    "proxyRegionCode": "IN",
    "requestId": "4bde6381-cd17-47e1-8c2a-1aaa424a1156",
    "originIp": "74.125.128.128"
  },
  "httpRequest": {
    "requestMethod": "GET",
    "requestUrl": "https://example.com/image.jpg",
    "requestSize": "3545",
    "status": 200,
    "responseSize": "3716",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
    "remoteIp": "62.36.0.43",
    "protocol": "HTTP/2"
  },
  "resource": {
    "type": "edgecache.googleapis.com/EdgeCacheRouteRule",
    "labels": {
      "matched_path": "/",
      "path_matcher_name": "routes",
      "service_name": "example_service",
      "resource_container": "projects/123456789",
      "location": "global",
      "route_destination": "projects/123456789/locations/global/edgeCacheOrigins/example_origin",
      "route_type": "ORIGIN"
    }
  },
  "timestamp": "2022-11-19T00:24:13.695328200Z",
  "logName": "projects/my-project/logs/edgecache.googleapis.com%2Fedge_cache_request",
  "receiveTimestamp": "2022-11-19T00:24:16.715871645Z"
}

您可以配置请求日志记录 实现这些目标为了减少日志量和总体 Logging 费用, 可以根据需要对日志进行采样或过滤。

您还可以将日志路由到 Pub/Sub、Cloud Storage 或 BigQuery 在 Google Cloud 或您现有的日志分析工具中进行分析。

保留政策

Logging 支持设置自定义保留 政策,包括针对每个接收器。

后续步骤