Arthas 使用 tt 命令抓取调用异常、调用耗时、传入参数、返回参数
Arthas Java 诊断工具 About 1,660 words示例代码
package com.example.arthas.controller;
@Slf4j
@RestController
public class Test111Controller {
@GetMapping("/test1")
public Result test1(@RequestParam String key) {
log.info("test1111111111111#{}", key);
List<String> list = (List<String>) CollectionUtils.arrayToList(new String[]{"aaa", "bbb", "ccc"});
return Result.builder().msg("请求成功").data(list).build();
}
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Result {
private int code;
private String msg;
private Object data;
}
tt -t
[arthas@18800]$ tt -t com.example.arthas.controller.Test111Controller test1
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 42 ms, listenerId: 1
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 2021-02-10 11:51:51 1.7066 true false 0x704b2127 Test111Controller test1
字段含义
表格字段 | 字段解释 |
---|---|
INDEX | 时间片段记录编号,每一个编号代表着一次调用,后续tt还有很多命令都是基于此编号指定记录操作,非常重要。 |
TIMESTAMP | 方法执行的本机时间,记录了这个时间片段所发生的本机时间 |
COST(ms) | 方法执行的耗时 |
IS-RET | 方法是否以正常返回的形式结束 |
IS-EXP | 方法是否以抛异常的形式结束 |
OBJECT | 执行对象的hashCode(),注意,曾经有人误认为是对象在JVM中的内存地址,但很遗憾他不是。但他能帮助你简单的标记当前执行方法的类实体 |
CLASS | 执行的类名 |
METHOD | 执行的方法名 |
tt -l
检索调用记录,列出已经捕获的调用记录。
参考地址
Views: 5,029 · Posted: 2021-04-25
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...