traceId链路 skywalking java agent

一、下载skywalking-agent.jar

https://skywalking.apache.org/downloads/

java 复制代码
上面页面里找到 Java Agent,下最新的 v9.8.0 Binary archive。直接地址:
https://dlcdn.apache.org/skywalking/java-agent/9.8.0/apache-skywalking-java-agent-9.8.0.tgz
这是 Agent 包,不是整套 SkyWalking 后端。解压后用里面的 skywalking-agent/skywalking-agent.jar

二、项目启动vm options带上skywalking-agent.jar

java 复制代码
-javaagent:D:\idea\projects\practice\test-trace\skywalking-agent\skywalking-agent.jar  
-Dskywalking.agent.service_name=test-a        
-Dskywalking.agent.keep_tracing=true            
-Dskywalking.collector.backend_service=127.0.0.1:11800  


参数说明:
  1、指向skywalking-agent.jar
  2、微服务名称,在skywalking服务端界面看到的服务名称
  3、连不上SkyWalking服务端时,是否照常生成traceId
      true:照常生成    false:不生成,返回Ignored_Trace  
  4、SkyWalking服务端(OAP)。 Agent把链路数据上报到服务端. OAP 的全称是 Observability Analysis Platform(可观测性分析平台)。
    它是 SkyWalking 的服务端,负责接收 Agent 上报的链路数据,做聚合分析,再给界面查询。

三、项目依赖与使用

java 复制代码
//依赖
<dependency>
     <groupId>org.apache.skywalking</groupId>
     <artifactId>apm-toolkit-trace</artifactId>
     <version>8.14.0</version>
 </dependency>


//使用, 服务A自动生成的traceId,会自动传递到B服务
@GetMapping("/api/trace/a")
public Map<String, String> trace() {
    String traceId = TraceContext.traceId();
    log.info("test-a traceId={}", traceId);
    //B微服务feign接口
    String traceB = testBClient.trace();
    Map<String, String> result = new LinkedHashMap<>();
    result.put("a", traceId);
    result.put("b", traceB);
    result.put("same", String.valueOf(traceId.equals(traceB)));
    return result;
}

 //B微服务接口
 @GetMapping("/api/trace/b")
 public String trace() {
     String traceId = TraceContext.traceId();
     log.info("test-b traceId={}", traceId);
     return traceId;
 }
相关推荐
li星野1 小时前
【学习记录】射线补偿原理与实现:从物理模型到MATLAB代码
开发语言·学习·matlab
IT研究室1 小时前
最新计算机毕业设计选题推荐-基于spring boot的母婴全程服务管理系统-网站-文档指导-Java-springboot
java·spring boot·课程设计
CRMEB1 小时前
商品 SKU 设计,从简单规格到多规格踩过什么
java·前端·数据库·开源
霸道流氓气质1 小时前
基于 Spring @Profile 的 MQ 消费者按需开关设计
java·后端·spring
Chloe.Zz1 小时前
一篇入门Agent
开发语言·前端·javascript
余醉 | dtminer1 小时前
3337 OTU×999置换:群落构建mBio 高分沉积物
开发语言·r语言·微生物学
白杨尚青1 小时前
C++入门篇(十八):模板进阶——非类型参数、特化全家桶与分离编译(收官篇)
开发语言·c++·笔记·模板·偏特化·分离编译
silvamux_2 小时前
4款新模型商务邮件翻译横评:0.98到0.46
android·java·javascript
qetfw2 小时前
Bash 内置与外部命令:type、command 与 builtin 验证
linux·开发语言·bash