skywalking04 - skywalking自定义链路追踪@Trace

本文档介绍了如何在Java应用中使用SkyWalking的@Trace注解进行自定义链路追踪,包括设置Span名称和添加自定义属性。通过在方法上添加@Trace注解,并利用@Tags和@Tag注解为Span添加明文和密文属性。同时,详细说明了启用自定义增强插件的步骤,确保链路信息能够正确显示在SkyWalking UI中。
摘要由CSDN通过智能技术生成

skywalking04 - skywalking自定义链路追踪@Trace

​ 当我们工程中,有些重要的方法,没有添加在链路中,而我们又需要时,就可以添加自定义链路追踪的Span,同时,我们还可以向链路的Span中添加一些自定义的属性(Tag)

准备工程

​ 工程我们采取上一章<skywalking03 - skywalking入门使用>使用到的demo工程,进行稍作改造.skywalking-plugin-example

准备需要自定义链路追踪的方法

private String trace(String plaintext) {
        return new Base64().encodeToString(plaintext.getBytes(StandardCharsets.UTF_8));
    }

基于上一章的成果,一切就绪.

引入依赖

​ 自定义链路,需要依赖skywalking官方提供的apm-toolkit-trace包.在pom.xml的dependencies中添加如下依赖:

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <!-- 当前的最新版本,请与安装的服务器版本对应 -->
            <version>8.3.0</version>
        </dependency>

使用@Trace注解方法

@Trace注解其只能在方法上进行注解,使用operationName属性指定Span的名字,若不指定,会使用方法名.

    @Trace(operationName = "customTraceFunction")
    private String trace(String plaintext) {
        return new Base64().encodeToString(plaintext.getBytes(StandardCharsets.UTF_8));
    }

使用@Tags/ @Tag注解添加Span的属性

    @Trace(operationName = "customTraceFunction")
    @Tags({@Tag(key = "plaintext", value = "arg[0]"), @Tag(key = "ciphertext", value = "returnedObj")})
    private String trace(String plaintext) {
        return new Base64().encodeToString(plaintext.getBytes(StandardCharsets.UTF_8));
    }
  • key 属性名

  • value 属性值会是一个表达式,具体可以参考官方文档: enhancement rules, for more information, refer to https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/Customize-enhance-trace.md#how-to-configure

    当然也可以看源码,入口在org.apache.skywalking.apm.toolkit.activation.util.TagUtil#tagParamsSpan

    这里用到的arg[0]代表入参的第一个对象,returnedObj即返回的对象.

启用自定义增强插件

  • 这一步很重要,如果不做,将看不到增强信息,而且不会有任何报错.

    自定义增强插件即apm-customize-enhance-plugin-8.3.0.jar

    这个官方插件的作用是使探针可以收集到@Trace之类自定义增加的注解.其位于agent目录中的optional-plugins目录中,需要将其拷贝至plugins目录!

启动工程

启动时注意使用探针代理,忘了看看上一章.

访问URL产生链路

curl http://localhost:8081/foo?p=a

在这里插入图片描述

查看链路

在这里插入图片描述

​ 可以观察到,已经有了我们@Trace产生的Span-customFunction

查看Span

在这里插入图片描述

​ 可以观察到我们自定义的两个字段,明文/秘文已经展示出来了.

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值