Cloud Run 问题排查简介

本页面介绍了针对 Cloud Run 错误的常见问题排查策略。Personalized Service Health 会发布由底层 Google Cloud 基础设施引起的所有 Cloud Run 突发事件,以便识别影响您项目的 Google Cloud 服务中断。您还应考虑针对 Personalized Service Health 事件设置提醒。如需了解影响所有 Google Cloud 服务的突发事件,请参阅 Google Cloud Service Health 信息中心。

如需解决与 Cloud Run 资源相关的问题,请参阅 Cloud Run 问题排查指南中的以下部分:

Cloud Run 问题排查策略

以下部分介绍了如何应用常规问题排查策略来解决错误。如果您在按照问题排查指南中的步骤操作后仍遇到错误,请参阅后续步骤

使用 Cloud Logging 输出适用的日志

如果您有适用于调试的良好日志,则更易于对 Cloud Run 资源进行问题排查。您应采用将容器日志与请求日志相关联的方式写入日志。

借助关联的日志,您可以确定需要进一步分析的请求,找到请求跟踪记录,并分析问题的根本原因。如需详细了解如何写入日志,请参阅写入容器日志

使用 Logs Explorer 调查实例

Cloud Run 中的每个请求日志都包含一个 instanceId 字段,用于识别处理请求的实例。根据您指定的并发值,单个实例可以同时处理多个请求。

如果有多个实例同时发出日志,您应过滤实例,以识别导致实例崩溃的连续请求。

通过过滤实例,您可以调试与冷启动或延迟时间增加相关的特定性能问题。当在后续并发请求中重复使用值时,这些问题也可能会与全局范围内声明的变量相关联。例如,您为实例创建单个连接池全局对象,然后在多个请求中使用该对象时。

如需在 Logs Explorer 中过滤特定实例,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Logs Explorer 页面:

    转到日志浏览器

  2. 在页面顶部选择一个现有 Google Cloud 项目,或者创建一个新项目。

  3. 对于服务,选择资源 Cloud Run 修订版本;对于作业,选择 Cloud Run 作业

  4. 展开日志条目,以便按特定实例进行过滤。

  5. 点击实例 ID 值,然后选择显示匹配条目

在调查实例时,您可以使用 Gemini Cloud Assist 调查来深入了解日志。 如需详细了解如何使用 Logs Explorer 以不同方式发起调查,请参阅 Gemini 文档中的使用 Gemini Cloud Assist 调查服务排查问题

解决意外的请求延迟时间问题

如果您遇到延迟时间问题,请执行以下操作:

  1. 检查延迟时间是影响对 Cloud Run 资源的所有请求,还是仅影响一小部分请求。Cloud Run 会自动与 Cloud Monitoring 集成,无需进行任何设置或配置

    如需查看各个请求延迟时间指标,请按照以下步骤操作:

    1. 在 Google Cloud 控制台中,前往 Cloud Run 页面:

      转到 Cloud Run

    2. 从列表中选择相应的服务或作业。

    3. 点击指标标签页,以显示请求延迟时间信息中心。

    如需在 Cloud Monitoring 中查看延迟时间指标,请从指标列表中选择 Cloud Run 修订版本 > Request_latencies > 请求延迟时间

    如需查看所有可用 Cloud Run 指标的列表和更深入的详细信息,请参阅 Cloud Monitoring 中的Google Cloud 指标

  2. 识别延迟时间较长的请求,以了解延迟来源。您可以使用 Cloud Trace 或 Cloud Logging 了解特定请求需要多长时间。

    如需使用 Cloud Logging 识别延迟时间较长的请求,请应用 traceSampled=true 过滤条件,以便将 Cloud Logging 中的日志与 Cloud Trace 中的跟踪记录相关联。如需了解详情,请参阅与 Cloud Logging 集成

    有时,依赖项(例如对其他服务的请求)可能会导致延迟时间问题。如需识别此类请求,您应针对这些请求进行明确的日志记录。如果您不输出此类日志,则可能会出现源自 Cloud Run 服务的延迟时间问题。

    此外,您还应考虑在所选时间窗口的上下文中评估延迟时间峰值。峰值的重要性是相对的;较小时间窗口中的峰值较大可能在较大时间窗口中可忽略不计,反之亦然。因此,时间窗口会对延迟时间数据的解读产生重大影响。

  3. 尝试增加实例数下限,以缩短传入请求的延迟时间,并避免冷启动。您还应考虑修改源代码,并调整扩缩设置以限制与支持性服务的连接数。

    如需了解详情,请参阅优化性能

利用 Gemini 协助进行问题排查

您可以使用 Gemini Cloud Assist 对话来分析日志和排查错误。借助 Gemini 协助,您可以利用该工具的日志分析功能快速找出并解决错误,从而节省宝贵的时间和精力。

如需在 Google Cloud 控制台中使用 Gemini Cloud Assist,请执行以下操作:

  1. 确保已为您的 Google Cloud 用户账号和项目设置了 Gemini Cloud Assist

  2. 在 Google Cloud 项目中设置 Cloud Run 开发环境,并确保您拥有相应的部署权限

  3. 前往 Google Cloud 控制台的 Cloud Run 页面。

    转到 Cloud Run

  4. 在控制台工具栏中,选择一个 Google Cloud 项目。使用与您在获得 Gemini Cloud Assist 访问权限后提交的项目 ID 关联的项目。

  5. 点击 spark 打开或关闭 Gemini AI 聊天

    系统会打开 Gemini 面板。

  6. 如果您同意这些条款,请根据需要点击接受

  7. 如果您有关于特定应用的问题,请先前往显示相应资源的页面,然后再提出问题,以便提供上下文信息。在生成回答时,Gemini 会包含有关当前控制台页面和项目的信息。

  8. Gemini 面板中输入提示。

    下表提供了一些示例提示,可用于将 Gemini Cloud Assist 与 Cloud Run 搭配使用。

    提示 回答类型
    “Can you explain this error message I'm seeing in my Cloud Run container logs?” 如果提示中没有具体的错误消息,输出内容将提供常见 Cloud Run 容器日志错误消息的问题排查指南。
    “Can you explain this error message I'm seeing in my logs for my Cloud Run service?

    HTTP 429 The request was aborted because there was no available instance. The Cloud Run service might have reached its maximum container instance limit or the service was otherwise not able to scale to incoming requests. This might be caused by a sudden increase in traffic, a long container startup time or a long request processing time."
    Cloud Run 错误消息的说明以及如何解决相应错误。
    “How do I fix the following error message when deploying my Cloud Run service?

    HTTP 404: Not found
    导致错误的常见原因以及如何排查此错误。
    “My Cloud Run service keeps crashing. What could be causing this?” 调查原因的方法以及如何解决问题。
    “How do I know if a 5XX error surfaced in the logs was due to a Google infrastructure service outage?” 确定 5XX 错误原因的步骤。
    “How do I identify the cause of this error: com.google.apps.framework.request.BadRequestException Project PROJECT has serving status SYSTEM_DISABLED and cannot be modified?” 表示已在系统级以管理方式停用 Google Cloud 项目。提供可进一步调查原因的步骤。
    “Why can I access my Cloud Run service from a browser if I have set ingress=internal?” ingress 设置配置为 internal 时预期行为的说明。包括可能看似可通过浏览器正常访问的其他场景。

如需了解详情,请参阅以下资源:

使用 Gemini Cloud Assist 调查

除了互动式对话之外,Gemini Cloud Assist 还可以通过 Gemini Cloud Assist 调查执行更深入的自动化分析。此功能直接集成到 Logs Explorer 等工作流中,是一款强大的根本原因分析工具。

当您对某个错误或特定资源发起调查时,Gemini Cloud Assist 会分析相关日志、配置和指标。它会使用这些数据来生成有关潜在根本原因的排名观测结果和假设,然后为您提供建议的后续步骤。您还可以将这些结果转移到 Google Cloud 支持请求中,以为支持团队提供有价值的背景信息,从而帮助您更快地解决问题。

如需详细了解如何同方式发起调查,请参阅 Gemini 文档中的使用 Gemini Cloud Assist 调查服务排查问题

后续步骤

如果您在 Cloud Run 文档中找不到问题的解决方案,请按照以下步骤操作: