perftools/xhgui-collector

此包已被废弃,不再维护。未建议替代包。

用于收集和存储XHProf结果以供XHGUI后续使用的库。

1.8.1 2020-07-09 14:36 UTC

This package is auto-updated.

Last update: 2020-10-25 05:30:30 UTC


README

Build Status Scrutinizer Code Quality

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.phpexternal/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.phpexternal/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 或更高。
  • XHProfUprofilerTideways 实际分析数据。
  • 一种访问 MongoDB 服务器的途径。选择以下之一
    • MongoDB 扩展>=1.3.0 (pecl 的 MongoDB PHP 驱动程序)
    • alcaeus/mongo-php-adapter composer 依赖项。
  • 一个 MongoDB 服务器。XHGUI 需要 2.2.0 或更高版本。

如有疑问,请参考 XHGUI 仓库的 composer.json 或此仓库的 composer.json 的 suggests 部分。