多语言开发项目使用Skywalking实现全链路追踪
·
Java使用方式
通过javaagent的方式启动项目
java -javaagent:{skywalking-agent.jar包路径} -DSW_AGENT_NAME=${项目名称} -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=${skywalking-oap地址}
示例
java -javaagent:D:\yymagicer\develop\apache-skywalking-java-agent-8.16\skywalking-agent\skywalking-agent.jar -DSW_AGENT_NAME=qrcode-prestore-service -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
多线程下的链路追踪的使用方法
使用以下包装类实现traceId链路传递
- CallableWrapper
- RunnableWrapper
- SupplierWrapper
使用方法
ExecutorService executorService = Executors.newFixedThreadPool(1);
executorService.submit(CallableWrapper.of(new Callable<String>() {
@Override public String call() throws Exception {
return null;
}
}));
ExecutorService executorService = Executors.newFixedThreadPool(1);
executorService.execute(RunnableWrapper.of(new Runnable() {
@Override public void run() {
//your code
}
}));
CompletableFuture.supplyAsync(SupplierWrapper.of(()->{
return "SupplierWrapper";
}));
链路追踪方法,携带参数,返回值
@Trace
@Tags({@Tag(key = "参数", value = "arg[0]"), @Tag(key = "返回值", value = "returnedObj")})
public Object method(Object param){
}
对象要重写toString()方法,不然,展示的是对象的地址
Python使用方式
使用Python3.9版本
安装skywalking模块
pip install apache-skywalking
使用方法
from skywalking import agent,config
config.init(agent_collector_backend_services='${skywalking-oap地址}', agent_name='${项目名称}')
agent.start()
示例
from skywalking import agent,config
config.init(agent_collector_backend_services='49.4.88.64:11800', agent_name='skywalking-test-python')
agent.start()
安装skywalking链路追踪日志工具包
pip install skywalking_trace==1.1.4
使用方法
from skywalking_trace.trace_log import TraceLog
log = TraceLog()
log.info("xxxxxx")
Python项目和Java项目都接入Skywalking服务后,相互之间接口调用,就可以是实现全链路追踪了
更多推荐
所有评论(0)