SkyWalking 之 持久化到es 以及自定义链路追踪

820 阅读2分钟

这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情

skyWalking .png

SkyWalking 配置注册中心和持久化

我们先配置一下持久化到 elasticsearch在 我们下载下来的目录中config文件夹下 application.yml文件中需要修改数据源以及配置中心的地址

image.png 我们进入到配置文件可以看到默认的数据库是 H2内存数据库 进行存储的,重启之后会丢失。当然我们的监控系统是需要实时的所以基于内存也是可以的 ,当然随运行时间越久内存会约占越大的,最好我们还是配置持久化数据库,常用的持久化方案就是 mysql 和 elasticsearch 、postgresql等持久化方案。今天我们演示一下 持久化到elasticsearch image.png

下面我们来修改一下持久化数据库只需要修改选择到 elasticsearch和配置elasticsearch的地址

storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    namespace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.1.7:9200}

image.png 注册中心修改也是一样

cluster:
  selector: ${SW_CLUSTER:nacos}
    nacos:
    serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
    hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:192.168.1.7:8848} #更新nacos的地址就可以了
    # Nacos Configuration namespace
    namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"public"}
    # Nacos auth username
    username: ${SW_CLUSTER_NACOS_USERNAME:""}
    password: ${SW_CLUSTER_NACOS_PASSWORD:""}
    # Nacos auth accessKey
    accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""}
    secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""}

下面我们测试一下配置有没有成功

image.png

image.png 下面我们重启一下看看这些请求的数据还在吗

image.png 可以看到重启之后数据还在并且我们也可以在elasticsearch 中看到它的数据

image.png

自定义链路追踪

实现自定义链路追踪,方便我们排查问题。更快速的定位到
引入依赖

<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>8.4.0</version>
</dependency>

在方法上使用 @Tag 直接可以看到方法的返回值

#这里的key是方法名, value是 returnedObj 固定的写法
@Tag(key="getList",value = "returnedObj")

image.png 如果需要记录参数 和返回值 就使用 @Tags

# key = param是参数的意思,value是参数的位置 arg[0]
@Tags({@Tag(key="param",value = "arg[0]"),@Tag(key="getList",value = "returnedObj")} )

进行测试

@Trace
@Tags({@Tag(key="param",value = "arg[0]"),@Tag(key="getList",value = "returnedObj")} )
public R getList(@RequestBody ListVo listVo){
    return  bossUserServices.getlist(listVo);
}

image.png 可以看到我们的入参以及返回数据 ,注意 @Tags或者 @Tag需要配合@Trace一起使用才会生效


实践是检验真理的唯一准则,感兴趣的可以去试试呀!明天见咯 😃😃😃😃