设置性能分析
了解更多关于如何配置我们的性能分析集成并开始分析您的代码。
PHP 的性能分析支持需要 Sentry PHP SDK 版本 3.15.0
及以上。
通过 性能分析,Sentry 允许您从生产环境中的真实用户收集和分析性能配置文件,为您提供应用程序在各种环境中性能的完整图景。
在底层,我们使用 Wikipedia 的采样分析器 Excimer。 Excimer PHP 扩展支持 PHP 7.2 及以上版本。
Excimer 需要 Linux 或 macOS,不支持 Windows。
以下是使用 Linux 包管理器、PECL 或从源代码构建安装 Excimer 的方法。
apt-get install php-excimer
参见 https://www.mediawiki.org/wiki/Excimer 以获取其他分发版本。
pecl install excimer
参见 https://pecl.php.net/package/excimer 以获取更多信息。
git clone https://github.com/wikimedia/mediawiki-php-excimer.git
cd excimer/
phpize && ./configure && make && sudo make install
根据您的环境,您可能需要在之后启用 Excimer 扩展。
phpenmod -s fpm excimer
# or
phpenmod -s apache2 excimer
为了使性能分析工作,必须启用 Sentry 的追踪功能。 要开始捕获性能分析数据,您首先需要启动一个事务。 查看更多详细信息,请参阅 性能设置 和 自定义 instrumentation 文档。
\Sentry\init([
'dsn' => 'https://examplePublicKey@o0.ingest.sentry.io/0',
'traces_sample_rate' => 1.0,
]);
\Sentry\init([
'dsn' => 'https://examplePublicKey@o0.ingest.sentry.io/0',
'traces_sample_rate' => 1.0,
// Set a sampling rate for profiling - this is relative to traces_sample_rate
'profiles_sample_rate' => 1.0,
]);
在您的 PHP 应用程序中使用性能功能时,响应时间会受到一定影响(具体取决于您配置的 traces_sample_rate
)。这是由于 PHP 的特性,请求通常作为处理用户响应的过程中的一部分发送。这会影响将请求发送到 Sentry 所需的时间,因为它会被添加到服务器的响应时间中。
为了抵消这种影响并使增加的时间接近于零,可以在同一台机器或本地网络上运行 Relay,以充当代理/代理。这样做会使 PHP 进程将请求发送到本地 Relay,然后由 Relay 将其转发到 Sentry,而不是直接将请求发送到 Sentry。
要开始使用 Relay,请参阅我们的 入门文档。 我们建议使用 Relay 的 managed
模式(这是默认模式)。
按照 Relay 文档中的说明,通过 Relay 发送一个测试事件到 Sentry。 不要忘记更新您的 DSN
以指向正在运行的 Relay 实例。 设置好 Relay 后,您应该会看到服务器受影响程度的显著改善。