鏈路追蹤組件

v0.0.1
版本
2022-01-13
版本更新時(shí)間
35
安裝
8
star
簡(jiǎn)介
webman的鏈路追蹤組件,基于xiaoyangguang/aop, 實(shí)現(xiàn)了基本的鏈路追蹤組件, 比如mysql es redis 開發(fā)者可自定義追蹤方法函數(shù),實(shí)現(xiàn)自己需要追蹤的組件,可追蹤composer加載的三方庫,比如thinkorm的數(shù)據(jù)庫執(zhí)行函數(shù) (可選擇自定義收集追蹤上報(bào)數(shù)據(jù)類,并配置在tracer.php中 如果example無法滿足你的需求)
安裝
composer require xiaoyangguang/tracer
使用
配置 config\plugin\xiaoyangguang\tracer\tracer.php文件
<?php
//區(qū)分大小寫 不能照搬需要追蹤自定義組件照著example寫很簡(jiǎn)單
use app\social\service\PostService;
use support\bootstrap\EsClient;
use support\Redis;
use think\db\PDOConnection;
use Xiaoyangguang\WebmanTracer\core\TracerInitialize;
use Xiaoyangguang\WebmanTracer\example\ElasticsearchAspect;
use Xiaoyangguang\WebmanTracer\example\GenericAspect;
use Xiaoyangguang\WebmanTracer\example\MysqlAspect;
use Xiaoyangguang\WebmanTracer\example\RedisAspect;
TracerInitialize::setConfig(true);
MysqlAspect::setConfig('業(yè)務(wù)數(shù)據(jù)庫', '127.0.0.1');
RedisAspect::setConfig('業(yè)務(wù)Redis');
ElasticsearchAspect::setConfig('業(yè)務(wù)Elasticsearch');
//HttpAspect::setConfig();
return [
RedisAspect::class => [ //追蹤類
Redis::class => [ //被追蹤類
'__callStatic', //被追蹤方法
],
],
ElasticsearchAspect::class => [//追蹤類
EsClient::class => [
'__callStatic',//被追蹤方法
'__call',//被追蹤方法
],
],
MysqlAspect::class => [//追蹤類
PDOConnection::class => [ //追蹤底層數(shù)據(jù)庫執(zhí)行方法例子
'getPDOStatement',//被追蹤方法
],
],
GenericAspect::class => [ //追蹤類 通用追蹤節(jié)點(diǎn) 任由開發(fā)者發(fā)揮
PostService::class => [
'searchByIds',
],
],
];
啟動(dòng)服務(wù)
docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin
php start.php start
效果圖
curl http://127.0.0.1:8787
瀏覽器訪問:http://ip:9411/zipkin/查看平臺(tái)數(shù)據(jù)