原创

skywalking填坑系列一:不断出现的TID:N/A

温馨提示:
本文最后更新于 2023年06月23日,已超过 473 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

今天看了下访问过来的很多朋友在问为什么会出现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,操作更方便哦

 

正文到此结束
本文目录