监控和问题排查

本页面介绍了如何获取目录和用户事件导入以及零售版 Vertex AI Search 中的其他 API 操作中所发生的错误的相关信息。

如需有关设置提醒方面的帮助,请参阅设置 Cloud Monitoring 提醒

简介

为 API 提供准确的目录信息和用户事件对于获得最优质的结果非常重要。监控和了解错误来源有助于您查找和修复网站中的所有错误。

查看汇总的集成错误

如需查看数据上传流程和预测或搜索请求生成的汇总错误,请使用监控页面

此页面显示了 Vertex AI Search for Retail API 的所有错误。您可以查看与商品清单、用户事件、推荐预测、搜索结果和模型相关的错误。系统还会记录导入操作中的错误,例如 Cloud Storage 文件中格式错误的行。系统为每个导入文件最多记录 100 个错误。您可以定义错误显示的时间段,并根据错误类型进行过滤。

您可以点击单个错误以在 Cloud Logging 中查看该错误的日志。

您可以通过展开单个错误日志来打开该日志。错误日志提供有关请求的更多详细信息,包括请求和响应载荷以及错误详情。此信息可帮助您确定错误的方法调用在网站中的位置。

对于无效的 JSON 错误,您可以通过展开 status 字段来获取有关该问题的更多信息。

查看特定集成操作的状态

您可以在活动状态窗口中查看特定集成操作的状态:

  1. 转到 Search for Retail 控制台中的数据> 页面。

    转到“数据”页面

  2. 点击活动状态

    活动状态窗口会显示商品清单、用户事件和控件上长时间运行的操作的状态。

    您可以在此窗口中检查特定集成操作的错误。

  3. 在任何发生错误的操作的“详细信息”列中点击查看日志,可检查 Cloud Logging 中的相应日志文件。

在 Cloud Logging 中查看日志

如需直接在 Cloud Logging 中打开日志文件,请按以下步骤操作。您必须拥有 Logs Viewer (roles/logging.viewer) 角色才能查看日志。

  1. 转到 Google Cloud 控制台中的 Logs Explorer。转到日志浏览器

  2. 从项目选择器中选择您的 Vertex AI Search for Retail 项目。

  3. 点击资源下拉菜单,然后选择已使用的 API > Cloud Retail

如需详细了解 Logs Explorer,请参阅使用 Logs Explorer 查看日志

例如,以下链接会打开过去一小时内所有 Vertex AI Search 零售错误的日志:

打开 Vertex AI Search for Retail Logs

如需配置写入哪些 API 日志,请参阅配置 Logging

配置日志记录功能

您可以配置将哪些服务日志写入 Logging。通过日志记录配置,您可以设置严重级别来写入日志、开启或关闭日志记录,以及替换特定服务的默认日志记录设置。

最终用户发出的每个 API 请求可生成一个日志记录条目。条目包含 API 方法、调用时间、响应代码、请求和响应正文等信息。项目的日志记录配置用于指定将 API 生成的哪些类型的日志写入 Logging,还可以选择精细地指定特定 API 服务的日志记录配置。

如需更新日志记录配置,您需要拥有 Vertex AI Search for Retail Editor 角色。

您可以使用控制台或 LoggingConfig API 来配置 Logging。

控制台

如需在控制台中更新日志记录配置,请按以下步骤操作:

  1. 转到 Search for Retail 控制台中的监控页面。

    转到 Monitoring 页面

  2. 点击 Logging 配置

  3. 如需设置全局日志记录配置,请选择日志记录级别。如果选择 LOG_ALL,还需要输入成功日志的采样率

  4. 如需设置服务级配置,请选择要更新的服务,然后选择其日志记录级别。此设置会覆盖全局日志记录配置。

curl

如需使用 API 更新日志记录配置,请使用 LoggingConfig 资源。请参阅 LoggingConfig API 参考文档

  1. 如需查看当前的日志记录配置,请使用 loggingConfig.Get

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/loggingConfig"
    
    • PROJECT_ID:您的项目的 ID。
  2. 如需更新日志记录配置,请使用 loggingConfig.Patch 方法。如需了解详情,请参阅 LoggingConfig API 参考文档

    此示例使用 loggingConfig.Patch 将全局日志记录配置设置为 LOG_WARNINGS_AND_ABOVE。它还设置了两项服务级配置:CatalogService 设置为 LOG_WARNINGS_AND_ABOVEControlService 设置为 LOG_ALL

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json; charset=utf-8" \
      "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/loggingConfig" \
      --data '{
        "name": "projects/PROJECT_ID/loggingConfig",
        "default_log_generation_rule": {"logging_level": "LOG_ERRORS_AND_ABOVE"},
        "service_log_generation_rules": [
          {
            "service_name": "CatalogService",
            "log_generation_rule": {
              "logging_level": "LOG_WARNINGS_AND_ABOVE"
              }
          },
          {
            "service_name": "ControlService",
            "log_generation_rule": {
                "logging_level": "LOG_ALL", "info_log_sample_rate": "0.1"
                }
            }
          ]
        }'
    

日志记录级别

只有某些严重级别的日志会写入 Logging。日志记录级别设置决定了将 API 方法生成的哪些日志写入 Logging。

如果没有为 API 方法设置服务级日志记录配置,系统将使用全局日志记录级别设置。

默认日志记录级别设置为 LOG_WARNINGS_AND_ABOVE

logging_level 字段接受以下值:

  • LOGGING_DISABLED:未写入任何日志。
  • LOG_ERRORS_AND_ABOVE:仅记录错误。
  • LOG_WARNINGS_AND_ABOVE:仅记录错误和警告。
  • LOG_ALL:记录所有内容,包括成功日志(例如 INFO 日志)。

成功日志的采样率

如果您将日志记录级别设置设为 LOG_ALL,但不想记录所有成功的日志,则可以指定采样率。例如,您可能决定定期监控日志以了解成功状态确认,或者希望查看成功日志的百分比。指定采样率有助于执行此操作,而无需将大量 INFO 日志条目写入 Logging,这可能会产生更高的 Logging 费用。

如需指定采样率,请将 info_log_sample_rate 设置为大于 0 且小于或等于 1 的有效浮点值。采样率决定了将 INFO 日志写入 Logging 的可能性。默认值为 1(写入所有 INFO 日志)。

服务等级配置

您可以为特定服务设置日志记录配置。这将覆盖该服务的全局日志记录设置。例如,您可以将全局日志记录级别设置为 LOG_WARNINGS_AND_ABOVE,但将 UserEventService 服务日志记录级别设置为 LOG_ALL,以便检查用户事件集成是否成功。

使用 ServiceLoggingLevel 对象设置精细的日志记录级别。

service_name 字段接受以下值:

  • CompletionService
  • ControlService
  • MerchantCenterStreaming
  • ModelService
  • PredictionService
  • ProductService
  • ServingConfigService
  • UserEventService

错误类型

本部分提供了日志中可能出现的错误类型的定义:

  • MISSING_FIELD:未设置必填字段值。例如,目录项缺少标题。
  • INVALID_TIMESTAMP:时间戳无效,例如遥远的未来,或者格式不正确。
  • FIELD_VALUE_TOO_SMALL:字段中的值低于所需的最小值;例如负数价格。
  • INCORRECT_JSON_FORMAT:请求中的 JSON 格式不正确;例如缺少 { 括号。
  • INVALID_LANGUAGE_CODE:语言代码格式不正确。
  • FIELD_VALUE_EXCEEDED:字段中的值大于允许的最大值。
  • INVALID_RESOURCE_ID:资源 ID 无效;例如,资源名称中的 catalog_id 不存在。
  • FIELD_SIZE_EXCEEDED:字段中的条目数超出上限。
  • UNEXPECTED_FIELD:本该留空的字段包含一个值;例如,详情页面查看事件对应的事务。
  • INVALID_FORMAT:字段格式不正确,例如字符串格式不正确
  • RESOURCE_ALREADY_EXISTS:您尝试创建已存在的资源,例如先前创建的目录商品。
  • INVALID_API_KEY:API 密钥与请求中的项目不匹配。
  • INSUFFICIENT_PERMISSIONS:您无权执行请求;此错误通常与缺少必要的 IAM 权限有关。
  • UNJOINED_WITH_CATALOG:请求中包括目录中不存在的目录项 ID。确保您的目录为最新状态。
  • BATCH_ERROR:请求中包含多个错误;例如,内嵌导入内容中有10 件商品因不同原因未通过验证。
  • INACTIVE_RECOMMENDATION_MODEL:您查询的模型目前无法提供服务。
  • ABUSIVE_ENTITY:与请求关联的访问者 ID 或用户 ID 在短时间内发送的事件次数异常。
  • FILTER_TOO_STRICT:预测请求过滤条件阻止了所有预测结果。返回一般(非个性化)热门项,除非调用将 strictFiltering 指定为 false(在这种情况下,不返回任何项)。导致此问题的一些常见原因:

    • 您所指定的过滤标记在您的目录中不存在。过滤标记更新最长可能需要一天才会生效。
    • 您的过滤条件范围太小。

查看数据加载指标

如需在 Google Cloud 控制台中监控目录和用户事件数据注入,请按以下步骤操作:

  1. Monitoring 页面上查看目录和用户事件数据注入的错误指标。

    转到 Monitoring 页面

  2. 数据上传系统成功运行后,您可以使用数据页面上的目录事件标签页来查看有关目录的汇总信息、预览上传的产品,以及查看用户事件集成指标的可视化图表。

    转到“数据”页面

  3. 如需创建提醒以便在数据上传出现问题时通知您,请按照设置 Cloud Monitoring 提醒中的步骤操作。

目录数据摘要

您可以使用数据页面上的目录标签页查看每个目录分支的概要数据统计信息。此页面显示了您已导入的商品数量、多少商品有库存,以及上次为每个商品清单分支导入产品的时间。

您还可以预览已上传的目录项,并根据产品字段进行过滤。

您可以将数据导入不同的分支,作为暂存和预览推荐或搜索结果的方法。例如,为了准备节日季,您可以将新的清单数据上传到非默认分支,并确保用于零售的 Vertex AI Search 已正确生成结果,然后再将其发布到您的网站上。

用户事件记录统计信息

对于每种用户事件,您可以在事件标签页中查看已记录多少个事件,以及有多少事件无法与产品关联(未联接事件) ,以及这些数字与上一时间段相比如何。您可以选择预设的时间段,也可以输入自定义时间范围。

指标图表显示一段时间内提取的用户事件,您可以按用户事件类型过滤。

数据质量指标

数据质量页面上,您可以查看显示符合建议的搜索数据质量标准的商品和用户事件所占百分比的指标。通过此页面,您可以评估需要导入或更新哪些数据,以提高搜索结果质量并解锁搜索性能层级。

如需详细了解搜索性能层级以及如何检查数据质量,请参阅解锁搜索性能层级

如需查看所有目录数据质量指标的列表,请参阅目录数据质量指标

如需了解所有用户事件要求以及推荐和搜索方面的建议,请参阅用户事件要求和最佳实践

未联接的事件

如果用户事件或 API 请求指的是尚未上传到 Vertex AI Search for Retail 的商品,则该事件为未联接事件。未联接的用户事件仍将被记录下来,并且系统会处理未联接的预测请求,但两者都无法用于进一步改进模型以用于将来的预测。因此,对于用户事件和预测请求而言,您应确保未记录的事件百分比极低。

您可以在数据页面的事件标签页中查看未联接用户事件所占百分比。

API 错误

点击监控页面按钮栏上的查看 API 指标,即可查看 API 错误随时间变化的图表(按方法名称显示)。

监控 API 方法活动

如需按 API 方法直观呈现流量、错误和延迟时间,请转到监控页面。您可以选择预设的时间段,也可以输入自定义时间范围。

要查看每个图表的更多详细信息,请执行以下操作:

  • 在图表下方,点击一个方法名称,以便在图表中将其隔离。
  • 将光标悬停在图表上,即可查看标注以及其中包含的各个方法及其相应时间点的值。
  • 点击并拖动图表的任意部分来放大该时间段。

后续步骤