Single XHProf collector use XHProf API.
Notice that this is a collector only, so you have to get a gui to show collected data such as xhgui.
5.6.36
7.0.30
Notice:If you are running php under Kubernetes, you have to use tideways_xhprof extension which only support php >= 7.0 to avoid XHProf crash in hp_execute_internal.
uprofiler
tideways
tideways_xhprof(recommend)
xhprof
mongodb(recommend)
mongo
Composer(recommend)
{ “require” : { “zoa-chou/xhprof-collector”: ”*”, } }
Single file
Copy xhprof-collector/src/collector.php to your path
Require collector to your project at first line, such as:
<?php require_once ’/path/to/your/collector.php’;
Nginx configure
Add fastcgi_param to your nginx config inside server block, such as:
location ~ .*.php?$ { fastcgi_param PHP_VALUE “auto_prepend_file=/path/to/your/collector.php”; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; }
Notice:Once you visited the host which server configure collector, nginx will always send fastcgi_param to php-fpm even if you visit other not configure server.
Append php.ini
Add auto_prepend_file to your php.ini, such as:
auto_prepend_file=/path/to/your/collector.php
XHGUI_ENABLE_PROB —— The probability of start collector while request.Valid value is between 0(off) and 100(all on), default is 0.
XHGUI_MONGO_URI —— mongodb uri, such as:mongodb://username:password@ip:host,ip2:host2/dbname?connectTimeoutMS=200
mongodb://username:password@ip:host,ip2:host2/dbname?connectTimeoutMS=200
XHGUI_ENABLE_CLI —— Enable collector while php running as cli model.Valid values is 0(off) and 1(on), default is 0.
XHGUI_SINGLE_CONTROL —— Enable use http header XHGUI-ENABLE-PROB (just like XHGUI_ENABLE_PROB, such as: ‘XHGUI-ENABLE-PROB: 100’) to control the probability of start collector which will cover XHGUI_ENABLE_PROB. Valid values is 0(off) and 1(on), default is 0.