当前位置: 首页 > news >正文

php安装skywalking_agent

php的一个项目要做压测,客户要求安装skywalking监测业务。
需要安装对应的php扩展,叫skywalking_agent。实
现本地写入分析日志,并通过aop传到服务端。
网上找了很多方式最后都没成功,自己摸索后记录, 亲测可用。

一.安装依赖

apt update
apt install gcc make llvm-13-dev libclang-13-dev protobuf-c-compiler protobuf-compiler

二.安装Rust

两种方式二选一,我用的第二种

1.一键安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain none
2.编译安装
#手动下载安装包
cd /tmp
wget https://download.csdn.net/download/xiantianga6883/92235985?spm=1011.2124.3001.6210# 解压并安装
tar -xzf rust-1.85.0-x86_64-unknown-linux-gnu.tar.gz
cd rust-1.85.0-x86_64-unknown-linux-gnu
./install.sh# 验证安装
rustc --version

三. 安装skywalking_agent扩展

1.一键安装

两种方式二选一,我用的第一种。较慢,等待了约10分钟安装成功

pecl install skywalking_agent

在这里插入图片描述

2.编译安装

准备

#准备工作
# 设置国内镜像源,否则Rust安装会很慢
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
#这三个不记得是否需要,先记录下,如后面报依赖缺失,则安装
apt install cargo
apt install libclang-13-dev -y
apt install protobuf-compiler protobuf-c-compiler -y

安装

git clone --recursive https://github.com/apache/skywalking-php.git
cd skywalking-phpphpize
./configure
make
make install

四.配置php.ini

[skywalking_agent]
extension = skywalking_agent.so; Enable skywalking_agent extension or not.
skywalking_agent.enable = On; Reporter type, optional values are `grpc`, `kafka` and `standalone`.
skywalking_agent.reporter_type = grpc; Log file path.
skywalking_agent.log_file = /tmp/skywalking-agent.log; Log level: one of `OFF`, `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`.
skywalking_agent.log_level = INFO; Address of skywalking oap server.
skywalking_agent.server_addr = 127.0.0.1:11800; Application service name.
skywalking_agent.service_name = hello-skywalking

重启php后,使用php -m,会出现skywalking_agent的扩展

五.测试

编写一个php文件,使用php test.php执行后,/tmp/skywalking-agent.log文件出现数据则为安装成功。
通过php -r "echo phpversion(‘skywalking_agent’);"判断版本

<?php
// cli_test.php - 命令行专用测试
if (php_sapi_name() !== 'cli') {die("请在命令行运行此脚本: php cli_test.php\n");
}echo "🚀 SkyWalking Agent CLI 测试\n";
echo str_repeat("=", 40) . "\n";// 检查扩展
if (!extension_loaded('skywalking_agent')) {echo "❌ 错误: SkyWalking Agent 扩展未加载\n";exit(1);
}echo "✅ SkyWalking Agent 扩展已加载\n";// 测试不同的操作类型
$operations = ['用户认证' => function() { usleep(200000); return true; },'订单处理' => function() { usleep(150000);// 模拟复杂业务逻辑for ($i = 0; $i < 1000; $i++) {$data = md5($i);}return true; },'支付网关' => function() { usleep(300000); return true; },'库存检查' => function() { usleep(100000); return true; },
];foreach ($operations as $name => $operation) {echo "🔧 执行: {$name}...";$start = microtime(true);$result = $operation();$time = round((microtime(true) - $start) * 1000, 2);echo " 完成 ({$time}ms)\n";
}echo "\n🎯 测试总结:\n";
echo "  • 扩展状态: 正常\n";
echo "  • 测试操作: " . count($operations) . " 个\n";
echo "  • 完成时间: " . date('Y-m-d H:i:s') . "\n";
echo "  📊 数据应该已发送到 SkyWalking OAP 服务器\n\n";
?>

结果

root@0eae390c1223:/var/www/html# php test.php 
🚀 SkyWalking Agent CLI 测试
========================================
✅ SkyWalking Agent 扩展已加载
🔧 执行: 用户认证... 完成 (200.73ms)
🔧 执行: 订单处理... 完成 (150.94ms)
🔧 执行: 支付网关... 完成 (300.41ms)
🔧 执行: 库存检查... 完成 (101.13ms)🎯 测试总结:• 扩展状态: 正常• 测试操作: 4 个• 完成时间: 2025-11-01 15:28:00📊 数据应该已发送到 SkyWalking OAP 服务器root@0eae390c1223:/var/www/html# cat /tmp/skywalking-agent.log
2025-11-01T07:29:56.839120018Z  INFO skywalking_agent::module: Starting skywalking agent service_name="hello-skywalking" service_instance="149097978451131748529151934966909977422@172.17.0.2" skywalking_version=8 heartbeat_period=30 properties_report_period_factor=10
2025-11-01T07:29:56.843521457Z  WARN connect: skywalking_php_worker::reporter::reporter_grpc: Connect to skywalking server failed, retry after 10s err=tonic::transport::Error(Transport, ConnectError(ConnectError("tcp connect error", Os { code: 111, kind: ConnectionRefused, message: "Connection refused" })))
2025-11-01T07:29:56.873875437Z  INFO skywalking_php_worker: Start to shutdown skywalking grpc reporter
2025-11-01T07:29:56.873926476Z  INFO skywalking_php_worker: Remove socket file socket_file="/tmp/skywalking-agent/6428372f1697a.sock"
2025-11-01T07:30:02.288401136Z  INFO skywalking_agent::module: Starting skywalking agent service_name="hello-skywalking" service_instance="302451706637838952077155886169438021799@172.17.0.2" skywalking_version=8 heartbeat_period=30 properties_report_period_factor=10
2025-11-01T07:30:02.29302433Z  WARN connect: skywalking_php_worker::reporter::reporter_grpc: Connect to skywalking server failed, retry after 10s err=tonic::transport::Error(Transport, ConnectError(ConnectError("tcp connect error", Os { code: 111, kind: ConnectionRefused, message: "Connection refused" })))
2025-11-01T07:30:03.075440443Z  INFO skywalking_php_worker: Start to shutdown skywalking grpc reporter
2025-11-01T07:30:03.075493982Z  INFO skywalking_php_worker: Remove socket file socket_file="/tmp/skywalking-agent/64283734490da.sock"

Enjoy it

参考:
https://skywalking.apache.org/docs/skywalking-php/next/en/setup/service-agent/php-agent/readme/
https://blog.csdn.net/u012375924/article/details/140335494

http://www.dtcms.com/a/558098.html

相关文章:

  • 汕尾市企业网站seo点击软件个人网站免费申请
  • 学习FreeRTOS(中断管理)
  • 可跳简单舞蹈的Exbody 2:富有表现力的人形全身控制
  • 开展农业信息网站建设工作总结海口智能建站详情
  • 长沙做手机网站企业策划方案怎么做
  • VS Code使用时遇到WakaTime 插件的 API Key 配置弹窗问题?
  • 基于融合数字孪生与多尺度特征提取的轴承故障模型详解
  • 【运行时错误53文件未找到mathpage wll】
  • 字符串解密
  • java面试:有了解过kafka架构吗,可以详细讲一讲吗
  • 专业国外网站建设手机自己做网站
  • 塑胶托盘东莞网站建设东莞市企业信息查询网
  • 语法--12-- as
  • 小迪安全v2023学习笔记(一百四十一讲)—— Linux系统权限提升篇VulnhubCapability能力LD_Preload加载数据库等
  • ROS2系列 (16) : Python服务通信实例——自定义消息接口
  • T型槽铸铁平台的特点
  • 数字马力前端开发面试题及参考答案(下)
  • 给网站做广告有什么好的网站做推广的
  • 潍坊网站建设官网装修网站开发前的准备工作
  • LLM之Agent(二十五)| 使用 A2A Agents和 MCP Server构建一个Demo Multi-Agent系统
  • 【30】船舶数据集(有v5/v8模型)/YOLO船舶检测
  • 全网视频合集网站建设制作相册图片合集
  • 网站建设建议书嘉兴手机网站建设
  • 公司网站建设 阜阳四川城乡建设网站证件查询
  • MySQL操作库
  • 免费vip影视网站怎么做的重庆网站建设与制作
  • React Hooks 实现表单验证
  • 李宏毅机器学习笔记38
  • 本网站建设优秀个人网站欣赏
  • 基于springboot的河南传统文化展示与推荐系统