设置性能分析

了解更多关于如何配置我们的性能分析集成并开始分析您的代码。

PHP 的性能分析支持需要 Sentry Laravel SDK 版本 3.3.0 及以上。

通过 性能分析,Sentry 允许您收集和分析来自生产环境中真实用户的性能配置文件,为您提供应用程序在各种环境下的完整性能视图。

底层,我们使用 Wikipedia 的采样分析器 Excimer。 Excimer PHP 扩展支持 PHP 7.2 及以上版本。

Excimer 需要 Linux 或 macOS,不支持 Windows。

以下是使用 Linux 包管理器、PECL 或从源代码构建安装 Excimer 的方法。

Copied
apt-get install php-excimer

参见 https://www.mediawiki.org/wiki/Excimer 以获取其他发行版。

Copied
pecl install excimer

参见 https://pecl.php.net/package/excimer 以获取更多信息。

Copied
git clone https://github.com/wikimedia/mediawiki-php-excimer.git

cd excimer/
phpize && ./configure && make && sudo make install

根据您的环境,您可能需要在之后启用 Excimer 扩展。

Copied
phpenmod -s fpm excimer
# or
phpenmod -s apache2 excimer

为了使性能分析功能正常工作,必须启用 Sentry 的追踪功能。 请查阅 性能设置 文档以获取更详细的信息。

config/sentry.php
Copied
'traces_sample_rate' => 1.0,

config/sentry.php
Copied
'traces_sample_rate' => 1.0,
// Set a sampling rate for profiling - this is relative to traces_sample_rate
'profiles_sample_rate' => 1.0,

在您的 Laravel 应用中使用性能分析功能时,响应时间会受到一定影响(具体取决于您配置的 traces_sample_rate)。 如果您的 Web 服务器使用 FastCGI,我们的 SDK 会利用 终止中间件,这意味着在性能分析数据发送到 Sentry 之前,响应已经发送给用户。

如果您的 Web 服务器不使用 FastCGI,您可以在同一台机器或本地网络上运行 Relay,它可以用作代理/代理。这样做会使 PHP 进程将请求发送到本地 Relay,再由 Relay 将请求转发到 Sentry,而不是直接发送到 Sentry。

要开始使用 Relay,请参阅我们的 入门文档。 我们建议使用 Relay 的 managed 模式(这是默认模式)。

请按照 Relay 文档中的说明通过 Relay 发送一个测试事件到 Sentry。 别忘了更新您的 DSN 以指向正在运行的 Relay 实例。 设置好 Relay 后,您应该会看到服务器受影响程度有显著改善。