Arthas(阿尔萨斯) Springboot 线上查看指定用户请求传参JSON
Arthas(阿尔萨斯) 能为你做什么? Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
官网 https://arthas.aliyun.com/zh-cn/

快速使用

背景:
接口代码如下,需要查看线上接口接受到的参数
/**
* xxxyyyyyyyyyyy
*/
@PostMapping("/contact")
public ResObject contact(@RequestBody ContactDto contactDto) {
contactDto.setUsername("1111");
return ResObject.ok();
}
public class ContactDto implements Serializable {
private Integer userId;
private String username;
private List<ContactItemDto> list;
}
操作:
首先登录服务器,这里要看所有的K8s机器,要在4台机器上操作
进入: kubectl --kubeconfig=/.kube/config-jds-k8s-prod exec -it -n s-ins-prod wload-6f667d-9tvhn bash 进入: kubectl --kubeconfig=/.kube/config-jds-k8s-prod exec -it -n s-ins-prod wload-6cf667d-fw2nr bash 进入: kubectl --kubeconfig=/.kube/config-jds-k8s-prod exec -it -n s-ins-prod wpload-65cf67d-whqlf bash 进入: kubectl --kubeconfig=/.kube/config-jds-k8s-prod exec -it -n s-ins-prod wpload-659667d-wx2sj bash
在每台机器上执行
curl -O https:/arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
#选择目标java进程
watch -v -x 3 com.xupload.controller.WXUploadController contact "{params[0],target}" "params[0].userId==138xx"

当ContactDto.userId等于138的时候打印参数,-x 3表示打印层级
"params[0].userId==138xx" 就是过滤的表达式
当符合条件的请求到达时,就可以打印出来,很方便
结果:


浙公网安备 33010602011771号