apm中间件切入点

个人博客:👉进入博客,关注下博主,感谢~

🌈所有博客均在上面博客首发,其他平台同步更新
🏆大家一起进步,多多指教~

在这里插入图片描述

前言

apm的要点,其实就是你需要在所有流程里头,把traceid塞进去,能拿到,这样的话不管你是打印日志来管理链路,还是上报日志,都行。

怎么切入各个中间件呢

第一步traceid什么时候塞入系统中

  1. 第一种放在网关去给塞,依靠sleuth框架生成traceid
  2. 第二种前端在发起请求的时候,也把traceid带进来。因为前端本身就有完整的会话

RPC

原理差不多,就是调用方会在header头带上traceid过去,然后被调用方拦截器拿到header头塞到本地缓存里头。

例如:

dubbo

基于dubbo spi机制,分别扩充product、consume端的header,以及拿到header塞回去
在这里插入图片描述

http

也是一样,只不过他会多出拦截器,拦截请求之后塞回去。

在这里插入图片描述

多线程、线程池情况下

TransmittableThreadLocal这个自行查我之前写的博客哦~

datasource

可以参照mybatis-plus插件怎么写的,在PreparedStatement 将traceid打印出来

MQ

rocketmq

在这里插入图片描述

rabbitmq

还有另外一种方式,就是在BeanPostProccessor,拿到我们注入消费者跟生产者,然后往这个类里头set对应的拦截器。

redis埋点

这个属实没有想到

在这里插入图片描述
你调用redis,总有地方需要open这个连接对吧,然后你在那里打印traceid即可。

但是!每个开发者用的redis链接有不一样,所以需要重写

agent作用

为了收集信息,然后上报
比如说路过的方法名,请求时间等等。

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值