使用 Error Reporting 收集错误数据

本文档列出了 Error Reporting 支持的环境, 链接到针对应用开发者的特定语言指南。 我们建议您使用针对特定语言的客户端库 或依赖自动收集的日志条目;但您可以 使用 Cloud Logging API 或 Error Reporting API 写入错误数据。 例如,如果您使用 Cloud Run、 写入 stderr 的异常将自动发送到 Cloud Logging。

Error Reporting 是基于 Cloud Logging 构建的全球服务,当满足以下所有条件时,它可以分析日志条目:

  • Assured Workloads 已停用。如需了解详情,请参阅 Assured Workloads 概览
  • 在存储日志条目的所有日志存储桶中停用了客户管理的加密密钥 (CMEK)。有关如何 确定日志存储桶的 CMEK 配置,请参阅 验证密钥的启用状态
  • 日志存储桶满足以下条件之一:
    • 日志存储桶存储在日志条目来源的项目中。
    • 日志条目已路由到某个项目,然后该项目存储了这些日志条目 存储在自己的日志存储桶中
如果您将日志条目存储在启用了 CMEK 的日志分桶中,则仍可以使用错误报告。但是,您必须使用 Error Reporting 客户端 库或 Error Reporting API。有关详情,请参阅 Error Reporting API 概览Error Reporting 客户端 库

虚拟私有云支持

错误报告是一项受 Virtual Private Cloud (VPC) 支持的服务。

为降低数据渗漏风险,请使用 VPC Service Controls 为 Google 托管式服务创建服务边界。如需了解 VPC Service Controls 以及如何创建服务参数,请参阅 VPC Service Controls 文档

配置环境以自动报告错误数据

如需了解特定于环境的配置要求,请参阅以下指南:

使用客户端库插桩应用

如需了解如何配置应用以发送错误报告,请参阅特定语言的配置指南:

使用 API 写入错误数据

您可以通过以下方式向 Google Cloud 项目报告错误事件 执行 Error Reporting API 方法 report 或 Cloud Logging API 方法 write

  • 如果您需要基于 API 密钥的身份验证,则必须使用 Error Reporting API。要使用 Error Reporting API,执行方法 report 并将方法请求正文的格式设置为 ReportedErrorEvent 对象。

    使用 Error Reporting API 时,系统会自动生成包含格式正确的错误消息的日志条目,并将其写入 Cloud Logging。这些日志条目会写入到 其 logName 的格式如下:

    projects/PROJECT_ID/clouderrorreporting.googleapis.com%2Freported_errors
    

    由于日志条目是通过对 report 的调用生成的,因此您可能会产生 Cloud Logging 提取费用。如需控制要提取哪些日志条目,请参阅排除项过滤条件

    如果您使用 Error Reporting API 报告错误事件, 但本文档的其余部分不适用。

  • 如果您想使用 Cloud Logging API,则必须 LogEntry 对象,以便包含堆栈轨迹; 或 ReportedErrorEvent 对象。如需详细了解格式设置要求,请参阅日志中的格式错误