Tideways PHP 性能监控工具

Tideways PHP 性能监控工具 1.简介

  • php性能监控平台, 目前选择的是tideways_xhprof扩展, xhgui UI展示界面, 使用mongoDb存储收集的日志数据
  • 具体版本,环境如下:
    Centos 7
    php7.4
    tideways_hprof 5.0 开源
    xghui 开源, 汉化版
    mongodb4, 存储日志
2.安装
  • a. 安装mongodb数据库
yum install mongodb-server
版本要大于3.6
  • b. php mongodb 扩展
1) pecl安装: pecl install mongodb
2) 安装包编译: mongodb下载地址 选择合适版本,依次执行以下命令编译安装
wget -c https://pecl.php.net/get/mongodb-xxx.tgz
tar -zxvf mongodb-xxx.tgz
cd mongodb-xxx
phpize
./configure
make && make install
3) yum 安装
以上方法三选一,随便一个都可以。但是要注意php版本
4) 在php.ini中添加 extension=mongodb.so
php.ini位置可以通过命令 php --ini 查看
  • c. 安装tideways 扩展
1) 执行以下命令,通过编译安装
git clone https://github.com/tideways/php-xhprof-extension.git
cd /path/php-xhprof-extension phpize ./configure make && make install

2) 在php.ini中添加 extension=tideways_xhprof.so
3) 重启php-fpm, 然后查看phpinfo(), 或php -m 看有没有成功
  • c. 安装xhgui UI
    1) 执行以下命令
git clone https://github.com/laynefyc/xhgui-branch.git
cd xhgui-branch
php install.php // 初始化,安装依赖
2) 修改配置文件 config/config.default.php
return array( ... 'extension' => 'tideways_xhprof', ... 'save.handler' => 'mongodb', 'db.host' => 'mongodb://127.0.0.1:27017', 'db.db' => 'xhprof', ... );

  • d. 配置xhgui虚拟主机 nginx
    server { listen8081; server_name_; root/Users/yaozm/Documents/wwwroot/xhgui-branch/webroot; # access_log/usr/local/var/log/nginx/access.log; error_log/usr/local/var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php?$query_string; indexindex.php index.html index.htm; } }

  • e. mongodb加索引,提高查询速度
    $ mongo> use xhprof > db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } ) > db.results.ensureIndex( { 'profile.main().wt' : -1 } ) > db.results.ensureIndex( { 'profile.main().mu' : -1 } ) > db.results.ensureIndex( { 'profile.main().cpu' : -1 } ) > db.results.ensureIndex( { 'meta.url' : 1 } )

  • f. 在需要监控的项目nginx配置文件中加入探针
    $ fastcgi_param PHP_VALUE "auto_prepend_file=/path/xhgui-branch/external/header.php";

  • 示例(这是被监控的项目的config)
    server { listenXXXx; server_nameXXXXX; root/Users/yaozm/Documents/wwwroot/laravel/public; # access_log/usr/local/var/log/nginx/access.log; error_log/usr/local/var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php?$query_string; indexindex.php index.html index.htm; } # **添加 PHP_VALUE,告诉 PHP 程序在执行前要调用的服务** fastcgi_param PHP_VALUE "auto_prepend_file=/path/wwwroot/xhgui-branch/external/header.php"; }

  • G. 测试环境搭建成功的示例
    猛戳这里

    推荐阅读