设置性能分析

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

PHP 的性能分析支持需要 Sentry PHP SDK 版本 3.15.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 的追踪功能。 要开始捕获性能分析数据,您首先需要启动一个事务。 查看更多详细信息,请参阅 性能设置自定义 instrumentation 文档。

Copied
\Sentry\init([
    'dsn' => 'https://examplePublicKey@o0.ingest.sentry.io/0',
    'traces_sample_rate' => 1.0,
]);

Copied
\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 后,您应该会看到服务器受影响程度的显著改善。