Cloud Run 问题排查简介

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

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

Cloud Run 问题排查策略

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

使用 Cloud Logging 输出适用的日志

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

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

使用 Logs Explorer 调查实例

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

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

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

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

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

    转到日志浏览器

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

  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. 在 Cloud de Confiance 控制台中,前往 Cloud Run 页面:

      转到 Cloud Run

    2. 从左侧导航栏中的可用列表中选择服务或作业。

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

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

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

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

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

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

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

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

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

排查连接问题

如果您的 Cloud Run 服务遇到连接问题,请考虑使用以下策略和工具来诊断问题:

  • PCAP 辅助容器:如需进行更深入的网络级分析,请在 Cloud Run 服务旁边部署 PCAP 辅助容器。此 Sidecar 容器使用同一网络命名空间中的 tcpdump 执行数据包捕获。边车与主入站容器分离,无需进行任何修改即可执行数据包捕获。边车还使用自己的资源,这可防止 tcpdump 与您分配给主服务的资源竞争。

  • 针对 Cloud Run 修订版本Cloud Run functions 函数的网络智能和连接测试:对 Cloud Run 资源与端点之间的网络路径执行自动化检查。这有助于您在连接到虚拟机实例、IP 地址或 Google 代管式服务时,发现可能会阻止 Cloud Run 资源接收或发送流量的错误配置。

  • 查看 Cloud Run 资源的日志:日志会显示有关连接问题的错误消息,例如失败、超时或连接被拒绝。这些日志通常会揭示连接问题是出在应用还是网络上。

后续步骤

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