您可以通过 PHP 将错误报告发送到 Error Reporting 如何使用 Google Cloud 中的 PHP 版 Error Reporting 库。 使用 PHP 版 Error Reporting 库为以下情况创建错误组:
- 您的日志存储桶包含客户管理的加密密钥 (CMEK)。
- 您的日志存储分区不在
global
区域中。 - 您想要报告自定义错误事件。
Error Reporting 已与某些 Google Cloud 服务集成,例如 App Engine、Compute Engine 和 Google Kubernetes Engine。Error Reporting 可显示在这些服务上运行的应用记录到 Cloud Logging 中的错误。如需了解详情,请参阅 在 Google Cloud 上运行 页面。
您还可以使用 Logging 将错误数据发送到 Error Reporting。如需了解数据格式设置要求,请参阅设置 Logging 中的错误消息格式。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Error Reporting API 。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Error Reporting API 。
安装客户端库
借助 PHP 版 Error Reporting 库,您可以监控和查看 几乎在任何位置运行的 PHP 应用。
如需详细了解如何安装,请参阅 PHP 版 Error Reporting 库的文档。您还可以使用问题跟踪器来报告问题。
配置客户端库
您可以自定义 PHP 版 Error Reporting 库的行为。如需查看可能的配置选项的列表,请参阅库的配置。
在 Google Cloud 上运行应用
要使用以下方法创建错误组:
projects.events.report
,您的服务账号需要
Error Reporting 写入者角色 (roles/errorreporting.writer
)。
某些 Google Cloud 服务会自动
Error Reporting Writer 角色 (roles/errorreporting.writer
)
服务账号。但是,您必须将此角色授予相应的服务
使用部分服务
App Engine 柔性环境
App Engine 会将
Error Reporting Writer 角色 (roles/errorreporting.writer
)
您的默认服务账号
您无需明确提供凭据即可使用 PHP 版 Error Reporting 库。
如需在 App Engine 柔性环境中启用 Error Reporting,请按以下步骤操作:
使用以下命令安装必要的库:
$ composer require google/cloud-error-reporting
将以下行添加到
app.yaml
中的runtime_config
部分:
然后,该库会自动将所有错误和未捕获的异常收集到 Error Reporting 中。如果您使用的是安装自带异常处理程序的网络框架,请参阅框架集成部分了解详情。
Google Kubernetes Engine
如需将 Error Reporting 与 Google Kubernetes Engine 搭配使用, 执行以下操作:
确保容器要使用的服务账号已 授予了 Error Reporting 写入者角色 (
roles/errorreporting.writer
)。您可以使用 Compute Engine 默认服务账号 或自定义服务账号
如需了解如何授予角色,请参阅 管理对项目、文件夹和组织的访问权限。
创建集群并向该集群授予
cloud-platform
访问权限范围。例如,以下 create 命令指定了
cloud-platform
访问权限范围和服务账号:gcloud container clusters create CLUSTER_NAME --service-account SERVICE_ACCT_NAME --scopes=cloud-platform
Compute Engine
如需将 Error Reporting 与 Compute Engine 虚拟机实例搭配使用,请执行以下操作: 执行以下操作:
确保已为您的虚拟机实例使用服务账号 授予了 Error Reporting 写入者角色 (
roles/errorreporting.writer
)。您可以使用 Compute Engine 默认服务账号 或自定义服务账号
如需了解如何授予角色,请参阅 管理对项目、文件夹和组织的访问权限。
-
在 Google Cloud 控制台中,转到虚拟机实例页面:
如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。
选择要接收
cloud-platform
访问权限范围。点击停止,然后点击修改。
在身份和 API 访问权限部分,选择服务账号 具有 Error Reporting Writer 角色 (
roles/errorreporting.writer
)。在访问权限范围部分中, 选择允许所有 Cloud API 的全面访问权限,然后保存更改。
点击启动/恢复。
示例
1. 使用以下命令安装 Cloud 库:
$ composer require google/cloud-error-reporting2.将以下代码行添加到您的
php.ini
中,其中 WORKSPACE
是工作区根目录的绝对路径:
auto_prepend_file='/WORKSPACE/vendor/google/cloud-error-reporting/src/prepend.php'
该预置文件用于安装异常处理程序和错误处理程序,这些处理程序会自动将错误发送到 Error Reporting。
如果您使用的是 App Engine 柔性环境,请参阅本页面上的 App Engine 柔性环境。
在本地开发环境中运行应用
要在本地开发环境中使用适用于 PHP 的 Error Reporting 库,请执行以下操作: 例如在自己的工作站上运行库,则必须提供 使用本地应用默认凭据创建 PHP 版 Error Reporting 库。 如需了解详情,请参阅向 Error Reporting 进行身份验证。
如需在本地开发环境中使用本页面上的 PHP 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
为您的 Google 账号创建本地身份验证凭据:
gcloud auth application-default login
如需了解详情,请参阅 Set up authentication for a local development environment。
projects.events.report
方法也支持 API 密钥。
如果您要使用 API 密钥进行身份验证,则无需设置本地应用默认凭据文件。如需了解详情,请参阅
在 Google Cloud 身份验证文档中创建 API 密钥。
查看错误报告
在 Google Cloud 控制台中,转到 Error Reporting 页面:
您也可以使用搜索栏查找此页面。
如需了解详情,请参阅查看错误。
框架集成
某些网络框架会替代异常处理程序。以下是使用 Laravel 和 Symfony 启用 Error Reporting 的示例。对于其他框架,您可以使用 Google\Cloud\ErrorReporting\Bootstrap::exceptionHandler
作为异常处理程序。
Laravel
在 app/Exceptions/Handler.php
文件中修改 report
函数,如下所示:
您还需要在文件开头处添加一行 use
声明:
use Google\Cloud\ErrorReporting\Bootstrap;
Symfony
创建包含以下内容的新 src/AppBundle/EventSubscriber/ExceptionSubscriber.php
文件: