flownative/sentry

Neos Flow 的 Sentry 集成

安装: 29 019

依赖者: 1

建议者: 0

安全性: 0

星星: 5

关注者: 4

分支: 4

开放问题: 0

类型:neos-package

v1.4.0 2024-09-18 08:31 UTC

README

MIT license Packagist Maintenance level: Love

Flow 6.x, 7.x 和 Flow 8.x 的 Sentry 集成

Flow包允许您自动向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.