TARS学习(五)——调用链功能

最近几个月tars c++更新了调用链功能,想要尝试摸索一下,但是尝试失败!

参考tars调用链介绍:

java:https://github.com/TarsCloud/Tars/blob/master/docs/tars_tracing.md

c++:https://github.com/TarsCloud/TarsCpp/blob/master/docs/tars_cpp_user_guide.md

 

期望目标:通过在浏览器url栏输入:localhost:9411 ,出现zipkin的图形界面。参考图:

3


1.环境
1.1 C++11
1.2 cmake-3.1.2
1.3 curl-7.29.0
1.4 opentracing-cpp ,version : 1.5.x
1.5 zipkin-cpp-opentracing  ,version : master

2.下载tars 源码

2.1 TarsFramework

    git clone https://github.com/TarsCloud/TarsFramework.git --recursive

2.2 TarsCpp

    git clone https://github.com/TarsCloud/TarsCpp.git --recursive

3.安装方式:


3.1 仅编译安装TarsCpp,不重新编译TarsFramework

3.1.1 添加_USE_OPENTRACKING变量

        在编译之前,在shell中执行export _USE_OPENTRACKING=1。

编译:

git clone https://github.com/TarsCloud/TarsCpp.git --recursive
cd TarsCpp
cmake .
make

3.1.2 编译失败

    在编译时TarsCpp出现了初始化动态数组错误:

3.1.3 修改makefile.tars

    1. 修改tarscpp/servant/makefile/makefile.tars,在前面增加一行:   _USE_OPENTRACKING=1

3.1.4 安装

    make install

3.1.5 编译例子HelloServer

(1)server端

g++ -std=c++11 -g -O2 -Wno-deprecated -Wall -D_USE_OPENTRACKING=1 -o HelloServer HelloImp.o HelloServer.o  -I/usr/local/tars/cpp/include -I./ -I/usr/local/mysql/include/mysql -I/usr/local/mysql/include -I/usr/include/mysql -I/usr/local/include  -L/usr/local/tars/cpp/lib -ltarsservant -ltarsparse -ltarsutil -lpthread -L/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib -L/usr/lib/mysql -L/usr/local/lib  -lopentracing -lzipkin_opentracing -lzipkin -lcurl

(2)client端

g++ -std=c++11 -g -O2 -Wno-deprecated -Wall -D_USE_OPENTRACKING=1 -o TestHelloServer main.o  -I/home/tarsproto/TestApp/HelloServer -I/usr/local/tars/cpp/include -I./ -I/usr/local/mysql/include/mysql -I/usr/local/mysql/include -I/usr/include/mysql -I/usr/local/include  -L/usr/local/tars/cpp/lib -ltarsservant -ltarsparse -ltarsutil -lpthread -L/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib -L/usr/lib/mysql -L/usr/local/lib  -lopentracing -lzipkin_opentracing -lzipkin -lcurl 

3.1.6 修改HelloServer服务端配置文件conf

路径:/usr/local/app/tars/tarsnode/data/TestApp.HelloServer/conf/TestApp.HelloServer.config.conf

在TestApp.HelloServer.config.conf文件中指定zipkin的地址:

添加3行:
            collector_host=127.0.0.1
            collector_port=9411
            sample_rate=1.0
3.1.7 启动服务

   在web管理平台‘重启’HelloServer服务会将TestApp.HelloServer.config.conf还原,因此我才用shell启动。

./HelloServer --config=/usr/local/app/tars/tarsnode/data/TestApp.HelloServer/conf/TestApp.HelloServer.config.conf &

3.1.8 检查zipkin功能

(1)localhost:9411  ,并没有zipkin的图形化界面

(2)检查端口9411 ,lsof -i:9411  ,并没有9411端口在使用。

 

3.2 重新编译TarsFramework

3.2.1 添加_USE_OPENTRACKING变量

        在编译之前,在shell中执行export _USE_OPENTRACKING=1。

       将clone的tarscpp文件替换原TarsFramework下tarscpp文件,重新编译TarsFramework框架

cd /TarsFramework/build/
./build.sh all

3.2.2 编译出错

    忽略动态数组初始化的错误,仍有其他错误:

tarscpp/servant/protocol/framework/NodeDescriptor.tars
[ 66%] Built target FRAMEWORK-PROTOCOL
Scanning dependencies of target tarsconfig
[ 66%] Building CXX object ConfigServer/CMakeFiles/tarsconfig.dir/ConfigImp.cpp.o
[ 67%] Building CXX object ConfigServer/CMakeFiles/tarsconfig.dir/main.cpp.o
[ 67%] Building CXX object ConfigServer/CMakeFiles/tarsconfig.dir/ConfigServer.cpp.o
Linking CXX executable ../deploy/tarsconfig/bin/tarsconfig
../tarscpp/servant/lib/libtarsservant.a(TarsCurrent.cpp.o):在函数‘_GLOBAL__sub_I__ZN4tars11TarsCurrentC2EPNS_13ServantHandleE’中:
/usr/local/include/opentracing/propagation.h:72:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:76:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:81:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:85:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:90:对‘opentracing::v2::propagation_error_category()’未定义的引用
../tarscpp/servant/lib/libtarsservant.a(Servant.cpp.o):/usr/local/include/opentracing/propagation.h:72: more undefined references to `opentracing::v2::propagation_error_category()' follow
../tarscpp/servant/lib/libtarsservant.a(Communicator.cpp.o):在函数‘tars::Communicator::initClientConfig()’中:
/home/TarsFramework/tarscpp/servant/libservant/Communicator.cpp:153:对‘zipkin::IpAddress::IpAddress(zipkin::IpVersion, std::string const&)’未定义的引用
../tarscpp/servant/lib/libtarsservant.a(Communicator.cpp.o):在函数‘tars::Communicator::initClientConfig()’中:
/home/maocc/tars-pjt/tars-install-pkgs/unVM-pkgs/TarsFramework/tarscpp/servant/servant/Communicator.h:318:对‘zipkin::makeZipkinOtTracer(zipkin::ZipkinOtTracerOptions const&)’未定义的引用
../tarscpp/servant/lib/libtarsservant.a(Communicator.cpp.o):在函数‘_GLOBAL__sub_I__ZN4tars12ClientConfig7LocalIpE’中:
/usr/local/include/opentracing/propagation.h:72:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:76:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:81:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:85:对‘opentracing::v2::propagation_error_category()’未定义的引用
/usr/local/include/opentracing/propagation.h:90:对‘opentracing::v2::propagation_error_category()’未定义的引用
../tarscpp/servant/lib/libtarsservant.a(AppCache.cpp.o):/usr/local/include/opentracing/propagation.h:72: more undefined references to `opentracing::v2::propagation_error_category()' follow
collect2: 错误:ld 返回 1
make[2]: *** [deploy/tarsconfig/bin/tarsconfig] 错误 1
make[1]: *** [ConfigServer/CMakeFiles/tarsconfig.dir/all] 错误 2
make: *** [all] 错误 2

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值