bpftrace 用户态探针

对应用二进制函数插桩, 观测用户态调用频率与返回耗时, 无需重启应用。

用法

用法
bpftrace -e 'uprobe:/opt/app/bin/server:handle_request { @ = count(); }'
bpftrace -e 'uprobe:/opt/app/bin/server:handle_request { @start[tid] = nsecs; }
uretprobe:/opt/app/bin/server:handle_request { @ns = hist(nsecs - @start[tid]); delete(@start[tid]); }'
符号需存在于二进制; 无符号时用偏移形式 path:0x1234。

易错点

  • 二进制更新后符号偏移变化, 脚本失效
  • 对高频热函数插桩引入额外开销

数据来源与参考

  • bpftrace 官方文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌