PHP全链路追踪
参考网址:
PHP 全链路追踪 Molten
Molten扩展地址:
GitHub - chuan-yun/Molten: php probe for zipkin and opentracing
注意点:
1、 Molten 不支持 PHP 线程安全(ZTS) 模式, 如需安装,需要重新编译PHP
2、 安装过程中会有报错:HASH_FLAG_PERSISTENT
解决:php7.3安装扩展Molten 遇到make编译 HASH_FLAG_PERSISTENT 报错问题 - 木木船长 - 博客园
这个报错是因为7.3以后的版本 HASH_FLAG_PERSISTENT 都改成了 IS_ARRAY_PERSISTENT
解决方法:
找到路径文件 (下载的Molten-master的路径)
/Applications/MAMP/bin/php/php7.3.24/include/php/ext/Molten-master/molten.c
把文件里面的 HASH_FLAG_PERSISTENT 替换成 IS_ARRAY_PERSISTENT,后保存文件。
安装步骤:
1、确定PHP是非线程安全的
2、下载molten 扩展包: git clone GitHub - chuan-yun/Molten: php probe for zipkin and opentracing
或者网页下载zip 文件,手动上传到服务器, 然后解压,得到文件夹:Molten-master
3、安装扩展:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-zipkin-header=yes
make
make install
4、修改php.ini配置文件
[molten]
extension=molten.so
molten.enable="1"
molten.service_name="SERVICE_NAME"
molten.tracing_cli=1
molten.open_report=1
molten.sampling_type=2
molten.sampling_rate=1
molten.notify_uri="http://127.0.0.1:9411/zipkin/"
molten.sink_http_uri="http://127.0.0.1:9411/api/v1/spans"
molten.sink_type=4
molten.sink_log_path="/data/logs/monolog/molten/"
具体配置详情:Molten首页、文档和下载 - 应用透明链路追踪工具 - OSCHINA - 中文开源技术交流社区
5、重启PHP
6、进入molten的源码目录的example目录。执行 run.sh
前提:安装docker 或者 java 环境
7、执行完毕后,打开浏览器,http://127.0.0.1:9411/zipkin/ 就可以看到信息了
8、php.ini 中配置适用于整个服务器系统,如果区分业务,可以用 ini_set 函数,在单独项目中设置