建立网站免费,建网站的公司哪里好,做网站好学吗,上海网站建设平台学习本篇文章之前首先要了解一下Sky walking的基础知识 分布式链路追踪工具Skywalking详解
一#xff0c;Sky walking数据持久化
Sky walking提供了es#xff0c;MySQL等数据持久化方案#xff0c;默认使用h2基于内存的数据库#xff0c;重启之后数据即会丢失。 在实际工…学习本篇文章之前首先要了解一下Sky walking的基础知识 分布式链路追踪工具Skywalking详解
一Sky walking数据持久化
Sky walking提供了esMySQL等数据持久化方案默认使用h2基于内存的数据库重启之后数据即会丢失。 在实际工作场景中更多选择es作为sky walking的存储方案。配置如下 提前准备好es节点在sky walking服务端的config/application.yml文件中找到storage配置项配置elasticsearch 重启Sky walking即可。
二自定义链路追踪【注解方式】
Sky walking默认的追踪粒度只到服务级别粒度不够小。如果一个请求只在当前服务中完成且这个请求的过程调用该服务中很多个接口。 他们是在同一个服务中为了在追踪到这些同一个服务中的Service就需要我们自定义追踪
引入依赖 dependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-trace/artifactIdversion8.14.0/version/dependency编写trace接口 Autowiredprivate TraceService traceService;GetMapping(/trace)public String trace() {// 往追踪上下文中绑定key/value值OptionalString s TraceContext.putCorrelation(name, xiaoliu);log.info(【自定义追踪测试】存储标签信息{},s.orElse(null));traceService.placeOrder(123);return success;}traceServiceImpl类的实现 Trace(operationName PLACE_ORDER)Tag(key productId,value arg[0])Overridepublic void placeOrder(String id) {log.info(准备创建订单{},id);String orderNo this.generateOrderNo();log.info(生成订单编号{},orderNo);try {TimeUnit.MILLISECONDS.sleep(200L);} catch (InterruptedException e) {e.printStackTrace();}String user this.findByUserId(1);log.info(查询用户信息{},user);}Overridepublic void traceex() {this.check();RestTemplate restTemplate new RestTemplate();String url http://localhost:8086/getUserById;String str restTemplate.getForObject(url, String.class);System.out.println(str);}private void check() {if (13) {log.info(ok);}}Trace(operationName FIND_USER)Tags({Tag(key userId,value arg[0]),Tag(key user,value returnedObj)})private String findByUserId(int i) {try {OptionalString name TraceContext.getCorrelation(name);log.info(name:{},name.orElse(aaaa));TimeUnit.SECONDS.sleep(1L);} catch (InterruptedException e) {e.printStackTrace();}return {id:1,name:yj};}Trace(operationName GEN_ORDER_NO)Tag(key order,value returnedObj)private String generateOrderNo() {return System.currentTimeMillis() ;}发送请求 http://localhost:8085/trace
查看Sky walkingUI界面 可以监控到同一个服务的其他Service
还可以查看相关的日志信息