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" 就是过滤的表达式

当符合条件的请求到达时,就可以打印出来,很方便

结果:

 

posted @ 2022-07-19 17:54  timseng  阅读(1258)  评论(0)    收藏  举报