1 Star 0 Fork 23

zhenyangze / phpAnalysis

forked from dreamans / phpAnalysis 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

关于 phpAnalysis

phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发、测试及生产环境部署使用,方便开发及测试工程师诊断性能问题:

  • 通过tideways收集PHP程序单步运行过程中所有的函数调用时间及CPU内存消耗等信息
  • 信息永久存储到MySQL数据库
  • 分析每个请求执行的信息,帮助开发测试人员快速定位性能问题
  • 非侵入式,不需修改项目PHP代码
  • 被动分析器,对性能的影响最小,同时收集足够的信息用于诊断性能问题

能解决什么问题?

当我们发现生产环境的某个接口执行时间特别长时应该怎么做? 直接登录线上机器单步调试? 打大量的log然后分析?

一般我们可以把分析流程拆分为如下几步操作:

  1. 分析开发/测试环境下执行是否会慢
  2. 分析预发/Mirror环境执行是否会慢
  3. 生产环境分析代码执行慢的原因

1,2,3步骤都需要去分析代码,看哪部分执行时间长。如果人工一行代码去排查,需要消耗大量的开发人员的时间并且定位难度很大,于此,phpAnalysis诞生了 :)

安装

准备

  1. 依赖的PHP扩展:tideaways (扩展下载地址), PDO, pdo_mysql, zlib
  2. PHP版本>= 5.4.0

安装phpAnalysis

  1. 下载源代码及其依赖
$ cd /home/www
$ git clone https://github.com/dreamans/phpAnalysis.git
$ cd phpAnalysis
$ git submodule update --init --recursive
  1. 修改配置文件
文件位置:/home/www/phpAnalysis/config/database.php
修改数据库链接信息
数据库需要自己创建
建表语句请见install.sql

return [

    'connection' => [

        'host' => '127.0.0.1', // 数据库主机名

        'port' => 3306, // 数据库端口号

        'user' => 'root', // 用户名

        'pass' => 'root', // 密码

        'db' => 'phpAnalysis', // 数据库名

        'tb_prefix' => 'pa_',  // 表前缀
    ],
];
  1. 修改Web Server配置,以Nginx为例
server {
    listen       8000;
    server_name  localhost;
    root  /home/www/phpAnalysis/public;
    index index.html;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
  1. 修改php.ini
; 告诉PHP程序在执行前首先调用此文件
auto_prepend_file = /home/www/phpAnalysis/agent/header.php
[tideways]
extension=tideways.so
;不需要自动加载,在程序中控制就行
tideways.auto_prepend_library=0
;频率设置为100,在程序调用时能改
tideways.sample_rate=100
  1. 重启php-fpm进程

如果安装顺利,此时访问 http://localhost:8000 能看到效果

预览

  • 请求列表

支持按应用实例名称、请求时段、url模糊查询筛选列表

  • 请求执行基本信息
  • 请求携带的数据
  • 调用明细

TODO

  • 权限系统
  • PHP应用管理
  • 应用控制台
  • 报表系统

说明

项目处于开发阶段,权限控制未完成且未做性能优化,请勿在生产环境中部署,感谢支持!

稳定版本预计下个月释出,敬请期待!

对项目有任何意见建议请提issue https://github.com/dreamans/phpAnalysis/issues

交流QQ群:174093801

License

MIT license.

MIT License Copyright (c) 2018 Mr.Mfk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

phpAnalysis - PHP应用性能分析系统 展开 收起
PHP
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/zhenyangze/phpAnalysis.git
git@gitee.com:zhenyangze/phpAnalysis.git
zhenyangze
phpAnalysis
phpAnalysis
master

搜索帮助

14c37bed 8189591 565d56ea 8189591