当前位置: 首页 > 后端技术 > PHP

SkywalkingPhp系统一:介绍&安装

时间:2023-03-29 23:05:53 PHP

不知道大家在工作中有没有遇到过这样的问题:1.线上某个请求突然很慢,但不知道慢在哪里;2、某个请求突然返回500,不知道是哪里出了问题;如果没有工具,我们只能在服务器上查找日志并进行分析;机器多的时候,要一台一台定位分析,效率低,难度大。今天给大家介绍一个利器:Skywalking,可以让你快速解决以上场景中的问题。Skywalking是一个APM(ApplicationPerformanceManagement)工具,可以完整详细的跟踪应用调用,即可以看到每个请求访问数据库、Redis、Curl请求的次数,以及每个请求的响应时间,以及是否有执行错误;Skywalking可以快速定位系统中哪些调用导致系统变慢,也可以快速定位请求返回非200的地方。官方地址:http://skywalking.apache.org/SkywalkingPhp是Php的实现,即可以跟踪Php编写的程序的调用。官方地址:https://github.com/SkyAPM/Sky...。一、安装1、安装gccgcc必须是4.9或以上版本。我安装了4.9。具体安装步骤如下:1、下载mkdir-p/root/gcccd/root/gccwget-chttp://mirror.koddos.net/gcc/...2、解压tarjxfgcc-4.9.0。tar.bz2cdgcc-4.9.03。预下载依赖源码包./contrib/download_prerequisites配置编译文件./configure--prefix=/opt/gcc--enable-checking=release--enable-languages=c,c++--disable-multilib#如果机器是64位的,32位的包就不用了,--disable-multilib5,compilemake-j4#如果有多核尽量使用CPU,编译时间比较长下载地址:https://github.com/protocolbu...注意版本必须在3.7.0以上。我选择的是3.7.x,解压后进入代码根目录,执行如下命令/autogen.shmake&&makeinstall3。安装grpc下载地址:https://github.com/grpc/grpc解压后进入代码根目录,执行如下命令:gitsubmoduleupdate--initmake&&makeinstall如果出现错误protoc:errorwhileloadingsharedlibraries:libprotobuf.so.18:cannotopensharedobjectfile:Nosuchfileordirectory请修改/etc/ld.so.conf添加动态库路径,然后执行ldconfig如果发现错误:Cannothandlehot-pluggedCPU修改文件src/core/lib/gpr/cpu_linux.cc注释掉75行代码if(static_cast(cpu)>=gpr_cpu_num_cores()){//gpr_log(GPR_ERROR,"无法处理热插拔CPU");return0;}4.安装其他库uuid-develpkg-config库CentOS可以使用yum安装5.配置grpc,protobuf,可以通过SkyWalingphp编译找到cp/opt/grpc/third_party/protobuf/protobuf。pc/usr/lib64/pkgconfig/cp/opt/grpc/libs/opt/pkgconfig/grpc++.pc/usr/lib64/pkgconfig/cp/opt/grpc/libs/opt/pkgconfig/grpc.pc/usr/lib64/pkgconfig/cp/opt/grpc/libs/opt/pkgconfig/gpr.pc/usr/lib64/pkgconfig/6,编译Skywalkingphp先编译php源码Skywalking要求Php版本>=7.0以上,我在里面选择7.2.17开发环境然后编译SkywalkingPhp,这里不详细介绍,参见GeneralExtensions。7.编译clientclient用于将Skywalking生成的跟踪文件上传到服务器。首先安装boost库1,下载https://www.boost.org/users/h...选择1.64.02,解压运行./bootstrap.sh--with-libraries=all--with-toolset=gcc./b2install然后编译clientcdsrc/report/make编译成功会生成可执行文件report_client。7、配置参考:https://github.com/SkyAPM/Sky...在php.ini中添加如下配置extension=skywalking.soskywalking.enable=1skywalking.version=6skywalking.app_code=xxxskywalking.grpc=127.0.0.1:11800启动客户端./report_client127.0.0.1:11800/tmp/第二个参数是服务器地址;第三个参数为文件保存路径,与php.ini一致。运行效果如下:左边是每次调用,包括访问的curl、redis、mysql,右边是每次调用耗时。是不是很直观的知道哪里调用比较慢?二、功能Skywalking最新版本可以拦截以下调用:1、curl标准curl库调用,即curl_exec之类的调用;Yar_Client调用;2、RedisRedis和RedisCluster调用;3、mysql可以拦截PDO和mysqli的调用;RabbitMQ网络框架代码分析RabbitMQ网络框架代码分析2:命令分发从RabbitMQ通道设计看连接复用