arthas的tt命令

tt 命令是 Arthas 的“时间隧道”功能,它可以记录指定方法的调用情况,并允许你对这些调用进行回放、查询和分析。这个功能非常强大,因为它能够帮助你理解过去发生的方法调用情况,这对于复现和定位历史问题非常有用。

tt 命令的基本用法

tt -t <类名> <方法名> [条件表达式] [选项]
  • -t:指定记录目标方法的调用,不加 -t 时默认是查看已经记录的信息。
  • <类名>:需要记录的类名,必须是全限定名。
  • <方法名>:需要记录的方法名。
  • [条件表达式]:可选参数,用于过滤条件,只有满足条件的调用才会被记录。
  • [选项]:其他可选项,包括设置采样率、限制记录的数量等。

tt 命令的常见选项

  • -n <次数>:限制记录的调用次数。
  • -s:成功执行的方法调用。
  • -e:抛出异常的方法调用。
  • -b:在方法执行之前记录。
  • -a:在方法执行之后记录。

示例

假设我们有一个名为 com.example.demo.service.UserService 的类,其中有一个 createUser 的方法,我们想要记录这个方法的调用情况。

tt -t com.example.demo.service.UserService createUser

执行上面的命令后,每次 UserServicecreateUser 方法被调用时,Arthas 都会记录该方法的调用信息。

查看和操作记录的调用

tt 命令还有一些子命令来查看和操作已经记录的信息:

  • tt -l:列出所有记录的调用。
  • tt -i <记录编号>:查看指定记录编号的详细信息,包括方法参数、返回值或异常信息。
  • tt -p <记录编号>:回放指定编号的调用,这可以触发方法执行,并且使用当时的参数。
  • tt -w <条件表达式>:根据条件表达式查询记录的调用。
  • tt -d <记录编号>:删除指定编号的调用记录。

注意事项

  • 使用 tt 命令记录信息时,会消耗额外的内存和 CPU 资源,因此在生产环境中要谨慎使用。
  • tt 记录的信息默认存储在内存中,重启应用后会丢失,如果需要持久化保存,可以考虑将信息导出。
  • tt 命令可以指定多个条件,通过组合使用可以精确地过滤和查找需要的调用记录。

tt 是 Arthas 中一个非常强大的诊断命令,它提供了一种方法来记录和分析过去的方法调用,对于理解系统的运行行为和定位问题非常有帮助。在使用时,建议结合实际的业务场景和问题特点来选择合适的记录和查询策略。

在 Arthas 的 tt 命令中,“记录编号”是一个唯一的标识符,它用于标识每一次被 tt 命令记录的方法调用。当你使用 tt 命令记录方法调用时,Arthas 会为每一次调用分配一个独特的编号,这个编号是一个自增的整数。

通过这个记录编号,你可以对特定的方法调用执行以下操作:

  • 查看调用的详细信息(包括输入参数、返回值、异常信息等)。
  • 回放某次调用(重新执行记录下来的方法调用)。
  • 删除某次调用的记录。

如何获取记录编号

当你执行 tt -t <类名> <方法名> 命令后,Arthas 开始记录指定方法的调用。你可以通过执行 tt -l 命令来列出所有记录的调用信息,每条记录前面都会显示一个编号,这就是记录编号。

示例

以下是一个使用 tt -l 列出记录并显示记录编号的示例:

$ tt -l
 INDEX  TIMESTAMP            COST(ms)  IS-RET  IS-EXP  OBJECT    CLASS                                  METHOD
-----------------------------------------------------------------------------------------------------------------
 1000   2021-08-05 14:25:40  35        true    false   0x5e9183  com.example.demo.service.UserService   createUser
 1001   2021-08-05 14:25:42  12        true    false   0x5e9184  com.example.demo.service.UserService   createUser

在这个例子中,10001001 就是记录编号,用于标识 createUser 方法的两次不同调用。

如何使用记录编号

你可以使用记录编号来进行进一步的操作,例如:

  • 查看编号为 1000 的记录详细信息:
    tt -i 1000
    
  • 回放编号为 1001 的记录:
    tt -p 1001
    
  • 删除编号为 1000 的记录:
    tt -d 1000
    

使用记录编号可以精确地操作和分析特定的方法调用,这对于诊断复杂的问题非常有帮助。在实际使用中,你需要根据自己的诊断需求来选择合适的操作。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值