配置请求日志记录

本页面介绍了如何配置请求日志记录。 适用于媒体 CDN

启用日志

默认情况下,日志记录处于停用状态,以尽量减少存储的数据。日志会进行路由 并存储在 Cloud Logging

  • 为特定媒体 CDN 服务启用日志记录功能:

    gcloud edge-cache services update YOUR_SERVICE \
       --enable-logging \
       --logging-sample-rate=1.0
    
  • 停用日志记录:

    gcloud edge-cache services update YOUR_SERVICE \
       --no-enable-logging
    
  • 获取服务的当前状态:

    gcloud edge-cache services describe YOUR_SERVICE
    

    输出类似于以下内容:

    ...
    logConfig:
     enable: true
     sampleRate: 1.0
    ...
    

设置日志采样率

对于大量请求,无需捕获每个请求的日志, 可能倾向于对日志进行采样并依赖指标进行主动监控 和调查。

要仅注入和存储 10% 的请求的日志,请将 logConfig.sampleRate0.1

gcloud edge-cache services update YOUR_SERVICE \
    --enable-logging \
    --logging-sample-rate=0.1

必须启用日志记录才能更改采样率。

除非另有说明,否则采样率默认为 0 (0%), 会记录针对已配置服务的每个请求。

查询日志

如需查询日志,您可以使用 Logs Explorer 您也可以使用 Google Cloud CLI。

如需在 Google Cloud 控制台中查看日志,请过滤出媒体 CDN 资源类型和(可选)按项目和服务名称指定。

以下日志记录查询显示了 所有媒体 CDN 服务的日志:

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"

过滤与特定 EdgeCacheService 资源关联的日志 项目中,请扩展以下查询:

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"
resource.labels.resource_container="projects/12345678"
resource.labels.service_name="MY_PROJECT"

如需匹配部分名称或使用正则表达式,请参阅 Logging 查询 语言比较

示例:识别缓存未命中

对对象的请求可能是缓存未命中,但可能会导致以下对象的缓存填充 原因如下:

  • 存留时间 (TTL) 过短
  • 过于具体的缓存键
  • 请求太少,无法保持缓存状态

如需识别缓存未命中,您可以在 日志浏览器

以下日志查询显示了可缓存(已查找)但 需要从源填充:

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"
resource.labels.resource_container="projects/12345678"
resource.labels.service_name="MY_PROJECT"
jsonPayload.cacheStatus="miss"

如果您需要按特定网址进行过滤, httpRequest.requestUrl 字段:

httpRequest.requestUrl = "URL"

若要按网址的一部分(例如路径组成部分)进行过滤,请使用 has 运算符

# `:` is the `has` comparison operator

httpRequest.requestUrl: "/videos/1381381_1080.mp4"
# You can use `OR` or `AND` to filter on multiple values

httpRequest.requestUrl: ("https://media-test.example.com/" OR "https://canary.example.net")

详细了解 Logging 用于匹配的综合语法 请参阅使用 Logging 查询编写高级查询 语言

过滤存储的日志

在存储日志之前对其进行过滤,例如,仅捕获相关字段 来减少您需要存储和查询的总日志量, 配置排除项过滤器 用于定义包含或排除字段的查询(过滤器) 存储数据。

您还可以设置多个过滤器,例如捕获所有缓存未命中 特定主机名的所有请求或所有请求,并且仅抽取一部分 所有日志。

路由日志

媒体 CDN 直接与 Cloud Logging 集成, 可以通过以下方式帮助您汇总和路由日志:

  • 存储到 Cloud Storage 和 BigQuery 等存储目标位置

  • 到 Pub/Sub 主题,第三方目标位置可以 订阅以访问日志

如需简要了解从 Logging 路由日志的方式,请参阅 路由和存储概览

后续步骤