wieni/ wmsentry
用于将错误发送到Sentry的Drupal 9模块。
Requires
- php: ^8.0
- drupal/core: ^9.1 || ^10.0
- sentry/sentry: ^3.1.1
Requires (Dev)
- composer-runtime-api: ^2.0
- ergebnis/composer-normalize: ^2.0
- wieni/wmcodestyle: ^1.7
README
用于将错误发送到Sentry的Drupal 9模块。
为什么?
- 我们使用Sentry来监控我们的网站并跟踪错误
- 我们没有找到现有的(稳定)模块,该模块使用Sentry SDK的v2版本将Sentry与Drupal集成。
安装
此模块需要PHP 8.0或更高版本,并使用Sentry PHP包(sentry/sentry
),该包不依赖于任何特定的发送HTTP消息的库。相反,它使用Httplug让用户选择他们想要的任何PSR-7实现和HTTP客户端。
如果您只想快速开始,应运行以下命令
composer require wieni/wmsentry nyholm/psr7 php-http/guzzle6-adapter
有关更多信息,请参阅sentry/sentry-php
存储库README中的安装部分。
它是如何工作的?
配置
启用后,您可以通过位于/admin/config/development/logging/sentry
的设置表单配置模块。
要更改模块的配置,用户需要administer wmsentry settings
权限。
要动态设置环境、发布或其他配置值,您可以在settings.php中覆盖配置
$config['wmsentry.settings'] = [ 'dsn' => $_ENV['SENTRY_DSN'], 'environment' => $_SERVER['APP_ENV'], ];
事件
Drupal\wmsentry\WmsentryEvents::BEFORE_BREADCRUMB
在将面包屑添加到作用域之前调用此函数。如果函数没有返回任何内容,则面包屑将被丢弃。回调函数通常获取一个名为“提示”的第二个参数,该参数包含创建面包屑的原始对象,以便进一步自定义面包屑的外观。
Drupal\wmsentry\WmsentryEvents::BEFORE_SEND
此函数可以返回修改后的事件对象或什么都不返回以跳过报告事件。例如,在发送之前手动删除PII可以用于此目的。
Drupal\wmsentry\WmsentryEvents::SCOPE_ALTER
在将作用域添加到捕获的事件之前调用此函数。作用域包含应隐式与Sentry事件一起发送的数据。它可以包含上下文数据、额外参数、级别覆盖、指纹等。
Drupal\wmsentry\WmsentryEvents::OPTIONS_ALTER
在创建带有选项对象的客户端之前调用此函数。选项对象是Sentry客户端的配置容器。
通过HTTP端点设置发布ID
此模块提供了一个HTTP端点,可以用于设置Sentry发布ID而无需登录。这在通过API创建新的Sentry发布时非常有用,例如在CI管道中。
端点是/sentry/set-release
,其安全性与core/rebuild.php
脚本相同(参见文档)。发布ID可以通过release
查询参数传递。以下是一个示例调用
/sentry/set-release?release=exampleproject@62d50f53×tamp=1614934032&token=XXE6H4wwVC6x5I6QnTPFTj-hSksNfgUpndv9X-3lC7Y
变更日志
此项目的所有重大更改都将记录在CHANGELOG文件中。
安全
如果您发现任何与安全相关的问题,请通过电子邮件security@wieni.be报告,而不是使用问题跟踪器。
许可证
遵循MIT许可证发布。更多信息请参阅LICENSE文件。