您可以使用 Node.js 版 Error Reporting 库,从 Node.js 应用向 Error Reporting 发送错误报告。您可以使用 Node.js 版 Error Reporting 库为以下情况创建错误组:
- 包含日志条目的日志存储桶使用客户管理的加密密钥(CMEK)。
- 日志存储桶满足以下条件之一:
- 日志存储桶存储在日志条目来源的项目中。
- 日志条目会路由到某个项目,然后该项目会将这些日志条目存储在其拥有的日志存储桶中。
- 您想要报告自定义错误事件。
Error Reporting 已与某些 Google Cloud 服务集成,例如 Cloud Functions、App Engine、Compute Engine 和 Google Kubernetes Engine。Error Reporting 可显示在这些服务上运行的应用记录到 Cloud Logging 中的错误。如需了解详情,请参阅本页面上的在 Google Cloud 上运行。
您还可以使用 Logging 将错误数据发送到 Error Reporting。如需了解数据格式设置要求,请参阅设置 Logging 中的错误消息格式。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Error Reporting API .
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Error Reporting API .
- 准备您的 Node.js 开发环境。
安装客户端库
借助 Node.js 版 Error Reporting 库,您可以监控和查看几乎在任何位置运行的 Node.js 应用所报告的错误。
-
使用 npm 安装软件包:
npm install --save @google-cloud/error-reporting
-
导入库并实例化客户端,以开始报告错误:
如需详细了解如何安装,请参阅 Node.js 版 Error Reporting 库的文档。您还可以使用问题跟踪器来报告问题。
配置客户端库
您可以自定义 Node.js 版 Error Reporting 库的行为。要查看可能的配置选项列表,请参阅库的配置。这些选项可以在传递到库构造函数的 options
对象中传递。
其他集成
如需详细了解 Node.js 版 Error Reporting 库与其他 Node.js Web 框架之间的集成,请参阅 GitHub 上该库的代码库。
在 Google Cloud 上运行应用
如需使用 projects.events.report
创建错误组,您的服务账号需要具有 Error Reporting Writer 角色 (roles/errorreporting.writer
)。
某些 Google Cloud 服务会自动向相应的服务账号授予“错误报告写入器”角色 (roles/errorreporting.writer
)。不过,对于某些服务,您必须向相应的服务账号授予此角色。
Cloud Run 和 Cloud Run functions
Cloud Run 使用的默认服务账号具有 Error Reporting Writer 角色 (roles/errorreporting.writer
) 的权限。
您无需明确提供凭据即可使用 Node.js 版 Error Reporting 库。
Cloud Run 已配置为自动使用 Error Reporting。未处理的 JavaScript 异常将在 Logging 中显示,并且会由 Error Reporting 进行处理,而无需使用 Node.js 版 Error Reporting 库。
示例:App Engine 柔性环境
App Engine 会自动向您的默认服务账号授予 Error Reporting Writer 角色 (roles/errorreporting.writer
)。
您无需明确提供凭据即可使用 Node.js 版 Error Reporting 库。
系统会自动为 App Engine 柔性环境应用启用 Error Reporting。 无需进行额外设置。Google Kubernetes Engine
如需将 Error Reporting 与 Google Kubernetes Engine 搭配使用,请执行以下操作:
确保为容器使用的服务账号已被授予 Error Reporting Writer 角色 (
roles/errorreporting.writer
)。您可以使用 Compute Engine 默认服务账号或自定义服务账号。
如需了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
创建集群并向集群授予
cloud-platform
访问权限范围。例如,以下创建命令会指定
cloud-platform
访问权限范围和服务账号:gcloud container clusters create CLUSTER_NAME --service-account SERVICE_ACCT_NAME --scopes=cloud-platform
Compute Engine
如需将 Error Reporting 与 Compute Engine 虚拟机实例搭配使用,请执行以下操作:
确保为虚拟机实例使用的服务账号已被授予 Error Reporting Writer 角色 (
roles/errorreporting.writer
)。您可以使用 Compute Engine 默认服务账号或自定义服务账号。
如需了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
-
在 Google Cloud 控制台中,转到虚拟机实例页面:
如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。
选择要接收
cloud-platform
访问范围的虚拟机实例。点击停止,然后点击修改。
在身份和 API 访问权限部分,选择具有 Error Reporting Writer 角色 (
roles/errorreporting.writer
) 的服务账号。在访问权限范围部分中,选择允许所有 Cloud API 的全面访问权限,然后保存更改。
点击启动/恢复。
示例
您可以调用 report
方法来手动报告错误,如以下示例所示:
使用 Express.js 报告错误
通过 Node.js 版 Error Reporting 库,您可以将 Error Reporting 轻松集成到常用的 Node.js Web 框架中,例如 Express.js:
在本地开发环境中运行应用
如需在本地开发环境中使用 Node.js 版 Error Reporting 库(例如在您自己的工作站上运行该库),您必须向 Node.js 版 Error Reporting 库提供本地应用默认凭据。如需了解详情,请参阅对 Error Reporting 进行身份验证。
如需在本地开发环境中使用本页面上的 Node.js 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
如需了解详情,请参阅 Set up authentication for a local development environment。
projects.events.report
方法也支持 API 密钥。
如果您要使用 API 密钥进行身份验证,则无需设置本地应用默认凭据文件。如需了解详情,请参阅
在 Google Cloud 身份验证文档中创建 API 密钥。
查看错误报告
在 Google Cloud 控制台中,转到 Error Reporting 页面:
您也可以使用搜索栏查找此页面。
如需了解详情,请参阅查看错误。