obisconcept/neos-sentry

将Sentry错误跟踪工具集成到Neos CMS中。

安装: 16

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

类型:neos-plugin

dev-master 2020-07-11 13:02 UTC

This package is auto-updated.

Last update: 2024-09-11 22:19:02 UTC


README

Sentry错误跟踪工具集成到Neos CMS中。

安装

要安装此插件,您只需在项目的根目录中通过composer要求它即可。

composer require obisconcept/neos-sentry

配置

为了在Neos中配置Sentry,您至少需要两个值。

  • 项目的公钥
  • 项目的标识符

您可以通过点击“安装说明”或通过导航到https://sentry.io/[your-company]/[your-project]/getting-started/php来找到这些信息。
在此页面上,Sentry提供了一个Raven客户端DSN的示例链接,如下所示

https://3c613164xxxxxxxxxxx2beb58b3be87b@sentry.io/126xxxx

@符号之前的部分是您项目的密钥。在斜杠之后URL的最后一部分是您项目的ID。

用于自动化错误报告

您需要将项目配置作为环境变量全局设置。
这是因为,在错误报告时,您不能依赖于任何组件(如Flow的配置组件),因为此时它可能已经损坏。

建议在Webroot下面的本地.htaccess文件中配置这些值。

Apache2的示例配置

SetEnv SENTRY_HOST sentry.io
SetEnv SENTRY_PROJECT_KEY 3c613164xxxxxxxxxxx2beb58b3be87b
SetEnv SENTRY_PROJECT_ID 126xxxx

可以省略主机,因为它默认为sentry.io。只有当您使用自托管的Sentry实例时,才指定它。

如果您省略了其他任何变量,远程异常记录将静默失败
这是因为此插件绝不应该破坏现有的错误报告,在处理另一个错误时抱怨错误的配置值可能导致未定义的行为。

手动使用

如果您想直接在代码中使用SentryClient服务类,您需要在Settings.yaml中至少配置项目密钥和标识符。

ObisConcept:
  NeosSentry:
    project:
      key: 'MY PROJECT KEY'
      id: 'MY PROJECT ID'

与上述所述不同,Sentry在手动使用时会抱怨配置违规。

如果您使用自托管的Sentry实例,您还可以在配置中提供host密钥。

ObisConcept:
  NeosSentry:
    host: 'my-company.com'

使用

自动化记录

对于自动化错误报告,不需要特殊的使用说明。当您正确配置,如上所述,它应该能够正常工作。

请注意,Sentry异常处理器仅在生产环境中自动注册!
如果您想在其他上下文中使用它,您必须在Settings.yaml中全局或按上下文配置它,如下所示

Neos:
  Flow:
    error:
      exceptionHandler:
        className: 'ObisConcept\NeosSentry\Error\SentryExceptionHandler'

请注意,类SentryExceptionHandler扩展了Neos\Flow\Error\ProductionExceptionHandler,因此不会直接在页面上显示调试输出!
建议不要修改处理器配置,不要将Sentry配置为其他上下文的处理器,因为Neos会迅速用与开发相关的异常消息耗尽您的配额。

手动记录

如果您想手动发送消息或异常到Sentry,也可以让您的类依赖于ObisConcept\NeosSentry\Domain\Service\SentryClient。此类公开了在相应文档中提到的任何方法。

数据隐私

请注意,Sentry收集了大量数据,以便为您提供修复错误所需的所有信息。它也可能存储与个人相关的数据,这些数据受GDPR规定的约束。告知用户Sentry的使用情况,以及收集的数据及其用途的目的,这是您的责任。