您的位置 首页 php

Skywalking Php介绍

不知道大家在工作中有没碰到这样的问题:

1、线上某个请求突然特别慢,但又不知道是哪里慢;

2、某个请求突然返回500,也不知道是哪里出错了;

如果没有什么工具, 我们能做的是在服务器上找日志,做分析;如果机器比较多,还得一台一台定位和分析,效率低而且难度较高。

今天介绍一款利器:Skywalking,可以让大家快速解决上述场景下的问题。

Skywalking是一个 APM(应用性能管理)工具,可以完整、详细的追踪应用的调用情况,即可以看到每次请求访问多少次数据库、 Redis ,还有Curl请求,及每个请求的响应时间,以及是否执行出错;

Skywalking 可以快速定位系统中哪些调用导致系统变慢,也可以快速定位是哪里导致请求返回非200。


官方 地址

Skywalking Php是Php的实现,即可以跟踪Php编写的程序的调用情况。

官方地址:。


一、安装

1、安装 gcc

gcc必须4.9以上版本,我安装的是4.9的,具体安装步骤如下:

 
1、下载
mkdir -p / root /gcc

cd /root/gcc

wget -c 

2、解压

tar jxf gcc-4.9.0.tar.bz2

cd gcc-4.9.0

3、预下载依赖源码包

./contrib/download_prerequisites

配置编译文件

./configure --prefix=/opt/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib # 机器是64位的,就不使用32位的包了,--disable-multilib

5、编译

 make  -j4 #如果有多核CPU尽量都用上,要编译很久

6、安装

make install

7、添加环境变量

echo 'export PATH=/opt/gcc/bin:$PATH' >> /etc/profile

8、生效变量

source /etc/profile  

2、安装protobuf

下载地址:

注意,版本必须为 3.7.0 以上版本,我选择的是3.7.x

解压后进入代码根目录,执行以下命令

./autogen.sh

make && make install

3、安装gr pc

下 载地址:

解压后进入代码根目录后,执行以下命令:

git submodule update — ini t

make && make install

如出现错误

protoc: error while loading shared libraries: libprotobuf.so.18: cannot open shared object file: No such file or directory

请修改/etc/ld.so.conf加入动态库路径后执行ldconfig

如发现错误:Cannot handle hot-plugged CPUs

修改文件 src/core/lib/gpr/cpu_linux.cc 注释掉75行代码

if (static_cast<unsigned>(cpu) >= gpr_cpu_num_cores()) {
// gpr_log(GPR_ERROR, “Cannot handle hot-plugged CPUs”);
return 0;
}

4、安装其它库

安装 uuid-devel pkg-config

CentOS可以使用yum安装

5、配置grpc, protobuf,可以被SkyWaling php编译找到

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、编译Skywalking php

先编译php源代码

Skywalking要求Php的版本>=7.0以上,我在开发环境选择的是7.2.17。

再编译Skywalking Php,这里就不详述了,参考一般的扩展。

7、编译client

client是用来将Skywalking产生的跟踪文件上传到服务器。

先安装boost库

 
1、下载 
选择 1.64.0


2、解压后运行

./bootstrap.sh --with-libraries=all --with-toolset=gcc

./b2 install  

然后编译client

cd src/report/

make

编译成功会产生report_client这个可执行文件。

7、配置

参考 :

在php.ini加入以下配置

 extension=skywalking.so
skywalking.enable=1
skywalking.version = 6
skywalking.app_code = xxx
skywalking.grpc = 127.0.0.1:11800  

启动client

./report_client 127.0.0.1:11800 /tmp/

第 二个参数为服务器地址;

第三个参数为文件保存路径,和php.ini保持一致。

左边是每一个调用,包括访问的curl、redis、mysql,右边是每个调用所耗时间,是不是很直观的就知道是哪里调用比较慢。

二、功能

Skywalking最新版本可以拦截以下调用:

1、Curl

标准curl库调用,即curl_exec之类的调用;

Yar_Client的调用;

2、Redis

Redis和RedisCluster的调用;

3、Mysql

可以拦截PDO和mysqli的调用;

文章来源:智云一二三科技

文章标题:Skywalking Php介绍

文章地址:https://www.zhihuclub.com/152537.shtml

关于作者: 智云科技

热门文章

网站地图