Trace Profiling 完整视图操作手册
1. Trace筛选(基本页面布局)
根据Container name + pid,找到你需要检测的请求url,然后选择某次Profile记录之后,系统主页面会展示该次trace基本信息以及所有工作线程分析
2. Trace基本信息
2.1 Trace ID
用户要确保自己的应用已经安装SkyWalking探针,否则系统捕捉不到Trace ID会影响线程分析。
2.2 响应时间分析
对本次Trace的执行主线程,各个系统调用事件的执行时间占比分析,而且点击时间卡片时,线程轴上对应的事件执行块会高亮,如下图
3. 线程分析
3.1 Trace分析
选择好Trace好之后,页面自动为你打开Trace分析开关,仅展示本Trace执行主线程(因为线程数太多,所以先优先展示关键线程,再次点击本按钮,会展开所有线程)
3.2 线程图例
3.3 线程系统调用事件单词说明
- futex:线程夯住,或者说在等待
- on:即cpu-on,即线程在执行CPU计算操作
- epoll:线程在查询系统内核文件描述符的读写状态
- net:线程在做网络调用,比如连接访问数据库、调用下游接口、网络监听请求等等操作。
- netread:指读取网络数据流(对于客户端来说是在读取响应,对于服务端来说是在读取请求)
- netwrite: 指写入网络数据流(对于客户端来说是在写入请求,对于服务端来说是在写入响应)
- lock:线程执行锁操作
- fileopen: 打开文件
- fileread: 读取文件
- filewrite: 写文件
4. 事件详情
在此处可查看线程执行事件的详细分析,可以看到事件的发生事件、操作时间、线程、类型、报文信息等等(不同事件展示的内容不一样,比如日志事件展示的是日志详情;net事件会展示连接信息、请求/响应报文;cpu-on事件会展示堆栈信息等等。)
5. 线程轴操作工具
5.1 区域缩放
当某些请求执行过快,在线程轴上就是很短的一段,事件堆积在一起,看不清楚,可以通过这个操作放大线程执行过程,便于分析
5.2 Java Lock
开启后,线程轴上futex事件如果是java lock事件,将以高亮黄色区块蒙层,如下图所示
5.3 Log事件
开启后,线程轴上将展示所有打印日志的节点,以下图中三角形表示,点击三角形后,可在事件详情框里查看日志信息
6. 页面放大:
点击后,页面全屏展示Trace分析,收起上侧、左侧菜单栏,如下图
7. 线程筛选
7.1 筛选条件
目前开源版本支持按线程名、事件类型来搜索线程,也可通过点击线程轴上的线程名称添加搜索。