webidea24/magento2-sentry

Magento 2 Logger for Sentry

安装: 182

依赖者: 0

建议者: 0

安全: 0

星级: 0

关注者: 0

分支: 70

类型:magento2-module

103.5.0 2022-10-17 10:56 UTC

README

此 Magento 2 模块将 Sentry sdk 集成到 Magento 2 中。根据在 Magento 2 后端配置的日志级别,可以将通知和错误发送到 Sentry。

安装

  • composer require justbetter/magento2-sentry
  • bin/magento module:enable JustBetter_Sentry
  • bin/magento setup:upgrade
  • bin/magento setup:di:compile
  • bin/magento setup:static-content:deploy

配置

有关 Adobe Cloud 的配置,请参阅下文

此模块使用 Magento 部署配置 进行大多数配置。这意味着您需要将此数组添加到您的 app/etc/env.php

'sentry' => [
    'dsn' => 'example.com',
    'logrocket_key' => 'example/example',
    'environment' => null,
    'log_level' => \Monolog\Logger::WARNING,
    'errorexception_reporting' => E_ALL,
    'ignore_exceptions' => [],
    'mage_mode_development' => false,
    'js_sdk_version' => \JustBetter\Sentry\Block\SentryScript::CURRENT_VERSION,
    'tracing_enabled' => true,
    'tracing_sample_rate' => 0.5,
    'performance_tracking_enabled' => true,
    'performance_tracking_excluded_areas' => ['adminhtml', 'crontab'],
    'profiles_sample_rate' => 0.5,
    'ignore_js_errors' => [],
    'disable_default_integrations' => [
        \Sentry\Integration\ModulesIntegration::class,
    ]
]

除此之外,在 Stores > Configuration > JustBetter > Sentry 下还有一些配置选项。

配置值

  • dsn:请在此处输入从 Sentry 获取的项目 DSN。您可以在“客户端密钥(DSN)”下的项目设置中找到 DSN。
  • environment:在此处可以指定部署版本运行的运行环境。常用的环境有生产、预发布和开发。使用此选项可以区分在预发布系统和生产系统上发生的错误。
  • log_level:使用此配置可以指定从哪个日志级别开始,Sentry 应接收消息。
  • errorexception_reporting:如果抛出的异常是 ErrorException 的实例,并且它符合错误报告,则将错误发送到 Sentry。此选项使用与 Error Reporting 相同的语法,例如 E_ERROR | E_WARNING 仅记录错误和警告。
  • ignore_exceptions:如果抛出的类匹配此列表中的任何类,则不要将其发送到 Sentry,例如 [\Magento\Framework\Exception\NoSuchEntityException::class]
  • mage_mode_development:如果此选项设置为 true,即使您的 Magento 在开发模式下运行,您也会在 Sentry 中收到问题。
  • js_sdk_version:如果此选项设置,将加载 Sentry 的明确版本的 JavaScript SDK。
  • tracing_enabled:如果此选项设置为 true,则启用跟踪(将自动加载捆绑文件)。默认:false
  • tracing_sample_rate:如果启用跟踪,您还应该设置样本率。默认:0.2
  • performance_tracking_enabled:如果启用性能跟踪,将生成请求的性能报告。默认:false
  • performance_tracking_excluded_areas:如果启用 performance_tracking_enabled,建议排除 adminhtmlcrontab 区域。默认:['adminhtml', 'crontab']
  • profiles_sample_rate:如果此选项大于 0(零),则模块将创建请求的配置文件。请注意,您必须在您的服务器上安装 Excimer 才能使用配置文件。有关 Sentry 文档。您还必须启用跟踪。默认:0(禁用)
  • ignore_js_errors:JavaScript 错误消息数组,不应发送到 Sentry。(另请参阅 Sentry 文档 中的 ignoreErrors
  • disable_default_integrations 提供了一个默认集成的 FQCN 列表,您不想使用。请参阅默认集成列表。默认:[]

Adobe Cloud 配置

由于 Adobe Cloud 不允许您手动将内容添加到 env.php 文件中,因此可以使用以下变量在 Adobe Commerce 中使用 "变量" 来进行配置:

  • CONFIG__SENTRY__ENVIRONMENT__ENABLED: 布尔值
  • CONFIG__SENTRY__ENVIRONMENT__DSN: 字符串
  • CONFIG__SENTRY__ENVIRONMENT__LOGROCKET_KEY: 字符串
  • CONFIG__SENTRY__ENVIRONMENT__ENVIRONMENT: 字符串
  • CONFIG__SENTRY__ENVIRONMENT__LOG_LEVEL: 整数
  • CONFIG__SENTRY__ENVIRONMENT__ERROREXCEPTION_REPORTING: 整数
  • CONFIG__SENTRY__ENVIRONMENT__IGNORE_EXCEPTIONS: 类的 JSON 编码数组
  • CONFIG__SENTRY__ENVIRONMENT__MAGE_MODE_DEVELOPMENT: 字符串
  • CONFIG__SENTRY__ENVIRONMENT__JS_SDK_VERSION: 字符串
  • CONFIG__SENTRY__ENVIRONMENT__TRACING_ENABLED: 布尔值
  • CONFIG__SENTRY__ENVIRONMENT__TRACING_SAMPLE_RATE: 浮点数
  • CONFIG__SENTRY__ENVIRONMENT__TRACING_PERFORMANCE_TRACKING_ENABLED: 布尔值
  • CONFIG__SENTRY__ENVIRONMENT__TRACING_PERFORMANCE_TRACKING_EXCLUDED_AREAS: 布尔值
  • CONFIG__SENTRY__ENVIRONMENT__IGNORE_JS_ERRORS: 错误消息的 JSON 编码数组

以下配置设置可以在 Magento 管理员中覆盖。这仅限于确保只能在不破坏管理员更改的情况下在服务器级别对特定配置设置进行更改。

请注意,在 Adobe Cloud 中无法使用分析功能。

可选的错误页面配置

  • 您可以选择在 pub/errors 中配置自定义错误页面。您可以使用 Sentry 反馈表单并将 Sentry 日志 ID 插入此处。Sentry 日志 ID 在客户会话中捕获,可以在 processor.php 中检索。

在记录错误时向 Sentry 发送附加数据

  • 当调用 Psr\Log\LoggerInterface 中的任何函数时,您可以将任何数据传递给参数 $context,并将其作为 '自定义上下文' 发送到 Sentry。

更改/过滤事件

此模块有一个名为 sentry_before_send 的事件,该事件在设置配置 before_send 之前触发。这提供了编辑/过滤事件的方法。例如,您可以为确定异常是否应捕获到 Sentry 添加额外的标准。要防止捕获异常,可以将事件设置为 null 或完全取消设置。

public function execute(\Magento\Framework\Event\Observer $observer)
{
    $observer->getEvent()->getSentryEvent()->unsEvent();
}

示例:[https://github.com/justbetter/magento2-sentry-filter-events](https://github.com/justbetter/magento2-sentry-filter-events)

兼容性

该模块已在带有 sentry sdk 版本 3.x 的 Magento 版本 2.4.x 上进行测试。我们不再支持 Magento 2.1.x,请随意分叉此项目或提交拉取请求。

有想法、错误或建议吗?

请创建一个问题拉取请求

关于我们

我们是来自荷兰的创新开发机构,使用 Laravel 和 Magento 构建出色的网站、网店和 Web 应用程序。请访问我们的网站 [https://justbetter.nl](https://justbetter.nl) 和我们的 [https://github.com/justbetter](https://github.com/justbetter) 开源项目。

许可

MIT

JustBetter logo