AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
## ZipKin介绍 Zipkin 是一个开放源代码分布式的跟踪系统,每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图。 Zipkin提供了可插拔数据存储方式:In-Memory、MySql、Cassandra以及Elasticsearch。为了方便在开发环境我直接采用了In-Memory方式进行存储,生产数据量大的情况则推荐使用Elasticsearch。 本文章为基于rapphp 环境下快速对接 zipKin 的技术方案 ## 安装 compose 依赖 [ly_lib/zipkin](http://package.magcloud.net/#ly_lib/zipkin) docker快速部署zipkin 服务端 ### 配置项 ~~~ 'zipkin' => ['open'=>true, // 开关 'sample' => //取样率, "http"=>true, //记录对外的 http 请求 "sql"=>true, //记录所有的 sql 请求 'url' => 'http://zipkin:9411/api/v2/spans'] //zipkin 服务端地址 ~~~ ### 初始化 ~~~ class AppInit implements Init { public function appInit(AutoFindHandlerMapping $autoMapping, Router $router) { ZipKin::init(); } } ~~~ 项目收集一些数据后,就可以在对应的 zipkin web端查看数据了 ### 添加自己的调用点 方法前 ~~~ $span = ZipKin::span($host); $span->tag('method', $name); $span->tag('url', $args[0]); $span->tag('header', json_encode($args[ 1 ]) ); $span->start(); ~~~ 方法后 ~~~ $current = ZipKin::current(); ZipKin::spanFinish(); ~~~ 为了对项目没有侵入性,建议使用 aop 的方式添加 对应的调用点 具体参照 lylib\zipkin\wave下的几个aop 文件