这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情
SkyWalking 配置注册中心和持久化
我们先配置一下持久化到 elasticsearch在 我们下载下来的目录中config文件夹下 application.yml文件中需要修改数据源以及配置中心的地址
我们进入到配置文件可以看到默认的数据库是 H2内存数据库 进行存储的,重启之后会丢失。当然我们的监控系统是需要实时的所以基于内存也是可以的 ,当然随运行时间越久内存会约占越大的,最好我们还是配置持久化数据库,常用的持久化方案就是 mysql 和 elasticsearch 、postgresql等持久化方案。今天我们演示一下 持久化到elasticsearch
下面我们来修改一下持久化数据库只需要修改选择到 elasticsearch和配置elasticsearch的地址
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
namespace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.1.7:9200}
注册中心修改也是一样
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:""}
下面我们测试一下配置有没有成功
下面我们重启一下看看这些请求的数据还在吗
可以看到重启之后数据还在并且我们也可以在elasticsearch 中看到它的数据
自定义链路追踪
实现自定义链路追踪,方便我们排查问题。更快速的定位到
引入依赖
<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")
如果需要记录参数 和返回值 就使用
@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);
}
可以看到我们的入参以及返回数据 ,注意 @Tags或者 @Tag需要配合@Trace一起使用才会生效
实践是检验真理的唯一准则,感兴趣的可以去试试呀!明天见咯 😃😃😃😃