longxinH / xhprof-apm

Xhprof APM
Apache License 2.0
36 stars 10 forks source link

没有分析数据 #8

Closed zhanghw0354 closed 5 years ago

zhanghw0354 commented 5 years ago

请问,我按照readme完成了php扩展的安装以及web系统的部署,并且访问同一台web服务器上的其他web系统,但apm的web页面一直显示“没有分析数据”,apm数据库数据表中也确实没有数据,理解是我这边不了解apm数据如何采集和写入mysql导致,还请您抽空解答,多谢 下面是php相关的配置: php.ini中 [xhprof_apm] xhprof_apm.config_ini = /etc/php.d/xhprof_apm.ini xhprof_apm.export = php xhprof_apm.php_file = /xxx/mysql_export.php xhprof_apm.ini中 extension = xhprof_apm.so apm.auto = 1 apm.flags = APM_FLAGS_NO_BUILTINS | APM_FLAGS_CPU | APM_FLAGS_MEMORY ;apm.ignored[] = md5 apm.rate = 100 apm.debug = apm_debug mysql_export.php中按照examples/mysql_export.php修改数据库配置做了调整,该php文件何时会执行,将apm数据写入到数据库中?还请您抽空解答,多谢

longxinH commented 5 years ago

mysql_export的路径正确吗?请求结束的时候,会触发这个文件。 另外我推荐使用MongoDB,mysql准备在最近的版本中废弃,因为数据格式不灵活

zhanghw0354 commented 5 years ago

mysql_export的路径是正确的,看了下php的error_log中也没有error日志。试验了下,应该是mysql_export.php没有执行:将mysql_export.php的内容简化为向某一个文件中追加固定日志,直接php mysql_export.php执行没有问题,对应文件中有追加日志,但访问同一台web服务器上的其他web系统,实验文件中没有追加日志。请问会有什么地方配置有问题,导致没有执行吗?

longxinH commented 5 years ago

扩展加载到了吗

zhanghw0354 commented 5 years ago

有加载到 image

longxinH commented 5 years ago

是5系列的分支吗

zhanghw0354 commented 5 years ago

是的,php的版本是5.6.36

longxinH commented 5 years ago

我在5.6.31版本上,跟你一样的配置,可以显示分析数据 image

longxinH commented 5 years ago

你代码中是否存在die或者exit?

zhanghw0354 commented 5 years ago

没有die和exit,我就访问同一个web服务器根目录下最简单的php脚本,脚本里面只有phpinfo();这一条命令,apm的web也依然显示“没有分析数据”

longxinH commented 5 years ago

你把 https://github.com/longxinH/xhprof-apm/blob/master/extension/xhprof_apm.c#L1860 这个if去掉,就可以使用cli了,试试看看行不行

zhanghw0354 commented 5 years ago

不好意思,我的描述有误,可能让你理解错了,我没有通过cli的方式执行php脚本,我就是通过浏览器访问的方式(比如http://XXX/info.php),访问了web服务器根目录下的php脚本,脚本里面只有一条简单的命令phpinfo(),没有exit,也没有die,但是apm的web依然显示“没有分析数据”

longxinH commented 5 years ago

你加我QQ 188248813

zhanghw0354 commented 5 years ago

大牛远程遥控debug,帮我解决了问题,真是太感谢了,问题原因一:apm的mysql数据库和数据表需要同名,但我的export.php中实现向mysql插入数据时,数据库使用的是我自定义的数据库名,数据表使用了默认的数据表名xhprof_apm,导致数据插入失败;另外xhprof_apm.config_ini对应的配置文件,由于没有apache用户读权限,也导致apm数据记录失败;总结下来是我这边疏忽大意和linux操作规范问题。多谢大牛。