使用 Error Reporting 收集错误数据

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

Error Reporting 是一项全球性服务,可自动分析 Google Cloud 项目中的日志以识别错误。 但是,Error Reporting 只能分析存储在 Cloud Logging 存储分区中的日志条目:global 区域,来源和目标 Google Cloud 项目相同,并且客户管理的加密密钥 (CMEK) 已停用。如果您将日志路由到其他 Google Cloud 项目、区域化存储分区或启用 CMEK,则 Error Reporting 不会捕获和分析这些日志。如需了解如何验证日志存储分区的配置,请参阅问题排查

Virtual Private Cloud 支持

Error Reporting 是虚拟私有云 (VPC) 支持的服务。

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

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

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

使用客户端库对应用进行插桩

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

使用 API 写入错误数据

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

  • 如果您需要基于 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 对象。如需详细了解格式设置要求,请参阅设置日志中的格式错误