flownative / sentry
Neos Flow 的 Sentry 集成
v1.4.0
2024-09-18 08:31 UTC
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- jenssegers/agent: ^2.6
- neos/flow: ^6.3 || ^7.0 || ^8.0 || ^9.0 || @dev
- sentry/sdk: ^3.0
README
Flow 6.x, 7.x 和 Flow 8.x 的 Sentry 集成
主要功能
此包确保Flow框架记录的异常和错误也出现在Sentry中。此客户端会额外注意清理堆栈跟踪中的路径和文件名,以便在Sentry UI中查看问题时有一个良好的概览。
安装
Sentry集成通过Composer以常规Flow包的方式安装。对于您的现有项目,只需将flownative/sentry
包含到您的Flow或Neos分布的依赖中即可。
$ composer require flownative/sentry
配置
您至少需要指定一个用于日志目标的DSN。除此之外,您还可以配置Sentry环境和发布。这些选项可以在Flow设置中设置,或者更方便的是,通过设置相应的环境变量。
Flownative: Sentry: dsn: "%env:SENTRY_DSN%" environment: "%env:SENTRY_ENVIRONMENT%" release: "%env:SENTRY_RELEASE%"
可以使用以下方式设置Sentry的错误样本率
Flownative: Sentry: sampleRate: 1
默认值为1 - 100%,表示所有错误的100%都会被采样。
可抛出对象(包括异常和运行时错误)作为Sentry事件记录。您可以指定一个不应记录的异常列表。如果抛出此类异常,它将仅记录为“注意”。
Flownative: Sentry: capture: excludeExceptionTypes: - 'Neos\Flow\Mvc\Controller\Exception\InvalidControllerException'
如果由Sentry客户端处理忽略的异常,则记录的类似消息如下
… NOTICE Exception 12345: The exception message (Ref: 202004161706040c28ae | Sentry: ignored)
附加数据
应用程序中声明的异常可以可选地实现此包提供的WithAdditionalDataInterface
。如果它们这么做,由getAdditionalData()
返回的数组将在Sentry的“附加数据”部分中可见。
请注意,数组必须仅包含简单类型的值,例如字符串、布尔值或整数。
测试客户端
此包提供了一个命令控制器,允许您记录测试消息和测试异常。
在您的终端中运行以下命令以测试您的配置
./flow sentry:test
Testing Sentry setup …
Using the following configuration:
+-------------+------------------------------------------------------------+
| Option | Value |
+-------------+------------------------------------------------------------+
| DSN | https://abc123456789abcdef1234567890ab@sentry.io/1234567 |
| Environment | development |
| Release | dev |
| Server Name | test_container |
| Sample Rate | 1 |
+-------------+------------------------------------------------------------+
An informational message was sent to Sentry Event ID: #587abc123457abcd8f873b4212345678
This command will now throw an exception for testing purposes.
Test exception in SentryCommandController
Type: Flownative\Sentry\Exception\SentryClientTestException
Code: 1614759519
File: Data/Temporary/Development/SubContextBeach/SubContextInstance/Cache/Code/Fl
ow_Object_Classes/Flownative_Sentry_Command_SentryCommandController.php
Line: 79
Nested exception:
Test "previous" exception thrown by the SentryCommandController
Type: RuntimeException
Code: 1614759554
File: Data/Temporary/Development/SubContextBeach/SubContextInstance/Cache/Code/Fl
ow_Object_Classes/Flownative_Sentry_Command_SentryCommandController.php
Line: 78
Open Data/Logs/Exceptions/2021030308325919ecbf.txt for a full stack trace.