perftools / xhgui-collector
用于收集和存储XHProf结果以供XHGUI后续使用的库。
Requires
- php: >=5.3.0
- paragonie/random_compat: >=2.0
Suggests
- ext-curl: You need to install the curl extension to upload saved files
- ext-mongo: Mongo is needed to store profiler results for PHP < 7.
- ext-mongodb: Mongo is needed to store profiler results for PHP > 7.
- ext-pdo: You need to install the pdo extension to store profiler results to a relational database
- ext-uprofiler: You need to install either xhprof or uprofiler to use XHGui.
- ext-xhprof: You need to install either xhprof or uprofiler to use XHGui.
- alcaeus/mongo-php-adapter: Mongo PHP Adapter is required for PHP >7 (when using ext-mongodb)
README
XHGUI Collector
这是一个小型独立模块,您可以使用它来收集和存储XHProf性能数据,以供XHGUI后续使用。
注意:此包正在逐步淘汰,在新安装中,请使用perftools/php-profiler包。
目标
- 兼容 PHP >= 5.3.0
- 除相关扩展外无依赖
- 可定制和配置,以便您可以在其基础上构建自己的逻辑
XHGUI 兼容性
该项目最初是从 perftools/xhgui@133051f 分支出来的,该分支是在0.7.1标签之后。
这应该可以确保与0.7.1(包括)之前的多数标签的兼容性。
唯一可能破坏兼容性的更改将是XHGUI端上的模式变更。
此表表示此项目与XHGUI数据模式之间兼容性的已知信息。
XHGUI Collector 版本 | XHGUI 版本 | 兼容性 |
---|---|---|
1.0.0 - 1.x | 0.2.0 - 0.9.0 | 假定兼容 - 无模式更改 |
使用方法
分析应用程序或网站
分析应用程序的最简单方法是使用 external/header.php
。 external/header.php
是为与 PHP 的 auto_prepend_file 指令结合使用的。您可以通过 php.ini
在系统范围内启用 auto_prepend_file
。或者,您可以通过虚拟主机启用 auto_prepend_file
。
使用 Apache,它将看起来像这样
<VirtualHost *:80> php_admin_value auto_prepend_file "/Users/markstory/Sites/xhgui/external/header.php" DocumentRoot "/Users/markstory/Sites/awesome-thing/app/webroot/" ServerName site.localhost </VirtualHost>
在 Nginx 的 fastcgi 模式下,您可以使用
server { listen 80; server_name site.localhost; root /Users/markstory/Sites/awesome-thing/app/webroot/; fastcgi_param PHP_VALUE "auto_prepend_file=/Users/markstory/Sites/xhgui/external/header.php"; }
分析 CLI 脚本
分析 CLI 的最简单方法是使用 external/header.php
。 external/header.php
是为与 PHP 的 auto_prepend_file 指令结合使用的。您可以通过 php.ini
在系统范围内启用 auto_prepend_file
。或者,您可以在脚本顶部包含 header.php
。
<?php require '/path/to/xhgui/external/header.php'; // Rest of script.
您还可以在运行 php 时使用 -d
标志
php -d auto_prepend_file=/path/to/xhgui/external/header.php do_work.php
使用环境变量
- 运行
composer require perftools/xhgui-collector
- 将这些行包含到您的引导文件中(例如 index.php)
define('XHGUI_CONFIG_DIR', PATH_TO_OWN_CONFIG);
require_once PATH_TO_YOUR_VENDOR . '/perftools/xhgui-collector/external/header.php';
- 设置环境变量以配置 MongoDB 主机、数据库名称等
env | 描述 | 示例 | 默认 |
---|---|---|---|
XHGUI_MONGO_URI |
mongo db 的主机和端口 | XHGUI_MONGO_URI=mongo:27017 |
127.0.0.1:27017 |
XHGUI_MONGO_DB |
用于分析数据的数据库名称 | XHGUI_MONGO_DB=xhprof |
xhprof |
XHGUI_PROFILING_RATIO |
分析请求的比例 | XHGUI_PROFILING_RATIO=50 表示分析所有请求中的 50% |
XHGUI_PROFILING_RATIO=100 |
XHGUI_PROFILING |
如果设置了这个环境变量,则启用分析 | XHGUI_PROFILING=enabled |
默认情况下没有设置,因此不会触发分析 |
系统要求
要使用数据收集类,您需要以下内容
- PHP 版本 5.3 或更高。
- XHProf,Uprofiler 或 Tideways 实际分析数据。
- 一种访问 MongoDB 服务器的途径。选择以下之一
- MongoDB 扩展>=1.3.0 (pecl 的 MongoDB PHP 驱动程序)
alcaeus/mongo-php-adapter
composer 依赖项。
- 一个 MongoDB 服务器。XHGUI 需要 2.2.0 或更高版本。
如有疑问,请参考 XHGUI 仓库的 composer.json 或此仓库的 composer.json 的 suggests
部分。