skywalking填坑系列一:不断出现的TID:N/A
今天看了下访问过来的很多朋友在问为什么会出现TID:N/A,因为之前写的内容没有提交导致本篇文章没有说明,只给了一个网盘地址,有点不负责任。所以决定还是补全本篇内容。
skywalking中出现TID:N/A的情况有如下几种原因:
1. skywalking agent无法连接到服务端。
因为Skywalking需要服务端的支持来生成和传递TID。当应用程序集成Skywalking代理时,代理会拦截应用程序的请求并尝试生成TID。然而,在没有启动对应的服务端组件的情况下,无法建立起完整的分布式链路,并且无法获得从服务端生成的TID。因此,即使应用程序集成了代理,也无法获取有效的TID,导致显示为TID:N/A。
解决办法:确保服务端启动并且应用请求可达。
2. 跨进程调用导致TID丢失。
当应用程序通过远程调用与其他服务进行通信时,如果调用链路中的某个组件没有正确地传递TID,就会导致TID:N/A的问题。
此类问题多出现在应用内创建异步线程的情况,如使用parallelStream、使用异任务或者某些中间件(如:MQ)。
解决办法:针对这种请求,需要查看当前的agent中的plugins文件夹下面是否有对应的组件或中间件的插件,如果没有,则TID一定为N/A。这就是为什么上面会提供网盘地址。
网盘中提供的插件只需要放入到plugins目录下,并重新启动agent及应用,即可解决对应中间件或组件TID:N/A的问题。
如下图所示,目前网盘中的为8.6.0版本agent对应的rabbitmq、threadpool、forkjoinpool的支持,当然,也就是可以解决parallelStream的问题。
如下为网盘地址:
链接:https://pan.baidu.com/s/1mnr6JO7LoRP5Es8eDpKYRw?pwd=gqgg 提取码:gqgg 复制这段内容后打开百度网盘手机App,操作更方便哦
- 本文标签: skywalking
- 本文链接: https://www.v8en.com/article/323
- 版权声明: 本文由SIMON原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权