1# TraceStreamer数据表概述 2TraceStreamer可以将trace数据源转化为易于理解和使用的数据库。用户可以通过SmartPerf界面直观的研究系统跟踪数据,也可在理解TraceStreamer生成的数据库的基础上,在TraceStreamer的交互模式或者Smartperf的数据库查询模式下,使用SQL查询语句自由组装查看用户关心的数据。下文将对TraceStreamer生成的数据库进行详细描述,给用户使用SQL查询系统跟踪数据提供帮助。 3 4## TraceStreamer输出的数据表分类 5* 常规泳道图数据表 6 7* native memory数据源相关表 8 9* perf相关数据表 10 11* hisysevent相关数据表 12 13## TraceStreamer输出数据库包含以下表格 14| 表名称 |作用| 15| ---- |---- | 16| app_name | 记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系 | 17| args | 记录方法参数集合| 18| bio_latency_sample | 记录IO操作相关方法调用,及调用栈数据| 19| callstack | 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号| 20| clk_event_filter | 记录时钟相关的信息| 21| clock_event_filter | 此结构用来维护时钟事件,cpu与唯一的ID做关联| 22| cpu_measure_filter | cpu事件过滤器表| 23| cpu_usage | 记录CPU使用率事件| 24| data_dict | 记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据| 25| data_type | 记录数据类型和typeId的关联关系| 26| diskio | 记录磁盘读写数据事件| 27| ebpf_callstack | 记录了采样相关信息| 28| file_system_samp | 记录了调用栈的相关信息| 29| hidump | 记录FPS(Frame Per Second)数据| 30| hisys_event_measure | 记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件 | 31| instant | 记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用 | 32| irq | 记录中断相关事件| 33| js_heap_edges | 记录了js内存数据类对象对应的成员的信息| 34| js_heap_files | 记录了js内存数据的名称和时间| 35| js_heap_info | 记录了js内存数据类型,如nodes和edges的字段类型和数据总数| 36| js_heap_location | 记录了js内存location节点相关数据| 37| js_heap_nodes | 记录了js内存类对象和其成员的对应关系| 38| js_heap_sample | 记录了timeline模式下的时间轴信息| 39| js_heap_string | 记录了js内存数据中的字符串| 40| js_heap_trace_function_info | 记录了timeline模式下的调用栈的每个函数信息| 41| js_heap_trace_node | 记录了timeline模式下的调用栈信息| 42| live_process | 记录了一些实时的进程中执行的一些数据| 43| log | 记录hilog打印日志数据| 44| measure_filter | 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录| 45| meta | 记录执行解析操作相关的基本信息| 46| native_hook | 记录堆内存申请与释放相关的数据| 47| native_hook_frame | 记录堆内存申请与释放相关的调用栈| 48| native_hook_statistic | 记录堆内存申请与释放相关的统计信息| 49| network | 抓取网络信息传输时产生的一些相关信息| 50| paged_memory_sample | 记录内存操作相关方法调用,及调用栈数据| 51| perf_callchain | 记录Hiperf采样数据的调用栈信息| 52| perf_files | 记录Hiperf工具采集到的函数符号表和文件名| 53| perf_report | 记录Hiperf工具采集数据时的配置信息。包括|抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称| 54| perf_sample | 记录Hiperf工具的采样信息| 55| perf_thread | 记录Hiperf工具采集到的进程和线程数据| 56| process | 记录所有的进程信息| 57| process_filter | 过滤进程| 58| process_measure | 保存进程的所有计量值| 59| process_measure_filter | 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id| 60| raw | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_waking,sched_wakup, cpu_idle事件的原始记录| 61| sched_slice | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录| 62| smaps | 记录进程的内存消耗的相关信息采样| 63| stat | 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解| 64| symbols | 记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间| 65| syscall | 记录用户空间函数与内核空间函数相互调用记录| 66| sys_event_filter | 记录所有的filter| 67| sys_mem_measure | 记录了所有的系统内存相关的测量信息| 68| thread | 记录所有的线程信息| 69| thread_filter | 过滤线程| 70| thread_state | 记录线程状态信息| 71| trace_range | 记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用| 72| clock_snapshot | 时钟号和时间,时钟名的映射表| 73| datasource_clockid | 数据源和时钟号的映射表| 74## 表与事件来源 75| 表名称 | 事件源 | 插件名 | 备注 | 76| ---- | ---- | ---- | ---- | 77|app_name | - |hisysevent-plugin |JSON数据源 | 78|args | - |ftrace-plugin |配合callstack使用 | 79|callstack | - |ftrace-plugin |异步或非异步的调用 | 80|cpu_measure_filter | - |ftrace-plugin |cpu跟踪器,cpu频率等 | 81|cpu_usage | - |cpu-plugin |cpu使用率 | 82|data_dict | 通用的 | - |所有字符串的记录 | 83|data_type | 通用的 | - |辅助表 | 84|file_system_callstack | - | - |ebpf文件系统 | 85|file_system_sample | - | - |ebpf文件系统 | 86|frame_maps | - |ftrace-plugin |帧渲染数据,app到RS的映射 | 87|frame_slice | - |ftrace-plugin |帧渲染数据 | 88|gpu_slice | - |ftrace-plugin |gpu渲染时长 | 89|hidump | - |hidump-plugin |FPS数据 | 90|hisys_event_measure | - |hisysevent-plugin |JSON数据源 | 91|instant | - |ftrace-plugin |waking和wakeup事件 | 92|irq | - |ftrace-plugin |记录中断事件 | 93| js_heap_edges | - |arkts-plugin | js内存数据 | 94| js_heap_files | - |arkts-plugin | js内存数据 | 95| js_heap_info | - |arkts-plugin | js内存数据 | 96| js_heap_location | - |arkts-plugin | js内存数据 | 97| js_heap_nodes | - |arkts-plugin | js内存数据 | 98| js_heap_sample | - |arkts-plugin | js内存数据 | 99| js_heap_string | - |arkts-plugin | js内存数据 | 100| js_heap_trace_function_info | - |arkts-plugin | js内存数据 | 101| js_heap_trace_node | - |arkts-plugin | js内存数据 | 102|live_process | - |process-plugin |Monitor数据 | 103|network | - |network-plugin |Monitor数据 | 104|diskio | - |diskio-plugin |Monitor数据 | 105|log | - |hilog-plugin |系统日志 | 106|measure | 通用的 | - |系统中的计量值(数值型)| 107|measure_filter | 通用的 | - |计量值的查询辅助表 | 108|meta | 通用的 | - |记录解析现场数据(解析时间,数据类型,解析工具等)| 109|native_hook | - |nativehook/hookdaemon |malloc && mmap内存数据 | 110|native_hook_frame | - |nativehook/hookdaemon |native_hook调用栈数据 | 111|native_hook_statistic | - |nativehook/hookdaemon |malloc && mmap统计数据 | 112|perf_callchain | - |perf-plugin |perf数据(非插件模式) | 113|perf_files | - | - |perf数据(非插件模式) | 114|perf_report | - | - |perf数据(非插件模式) | 115|perf_sample | - | - |perf数据(非插件模式) | 116|perf_thread | - | - |perf数据(非插件模式) | 117|process | - |ftrace-plugin |进程信息 | 118|process_filter | - |ftrace-plugin |进程计量表的辅助表 | 119|process_measure | - |ftrace-plugin |进程内存 | 120|process_measure_filter| - |ftrace-plugin |process_measure的辅助表| 121|raw | - |ftrace-plugin |线程唤醒信息 | 122|sched_slice | - |ftrace-plugin |配合现场状态表使用,dsched_switch的原始数据| 123|smaps | - |memory-plugin |进程的内存消耗 | 124|stat | 通用的 | - |记录不同种类数据的数据量| 125|symbols | - |ftrace-plugin |符号表(地址到字符串的映射)| 126|syscall | - |ftrace-plugin |系统调用 sys_enter/exit| 127|sys_event_filter | - |ftrace-plugin | | 128|sys_mem_measure | - |memory-plugin |系统内存 | 129|thread | 通用的 | - |线程信息(常用) | 130|thread_state | 通用的 |ftrace-plugin |线程调度图(常用) | 131|trace_range | 通用的 | - |trace数据的时长 | 132|thread_filter | 通用的 |ftrace-plugin |线程计量跟踪表(比较少用)| 133|clock_snapshot | 通用的 |通用的 |时钟号和时间,时钟名的映射表| 134|datasource_clockid | 通用的 |通用的 |数据源和时钟号的映射表| 135 136## ___表格关系图___ 137--- 138### 进程表与线程表关系 139当一个进程或者线程结束后,系统可能再次将该进程号或者线程号分配给其他进程或者线程,造成一个进程号或线程号代表多个进程或线程的情况。 140Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。 141thread表通过ipid字段关联process表的id字段,可以查询线程归属进程。 142 143### 查询举例 144- 已知pid = 123,查看当前进程下的所有线程信息,可以使用如下SQL语句: 145```select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id``` 146 147### 线程表与线程运行状态表关系图 148thread_state表记录所有线程的运行状态信息,包含ts(状态起始时间),dur(状态持续时间),cpu, itid, state(线程状态)。 thread表的id字段与thread_state表的itid字段相关联。 149 150### 查询举例 151- 已知tid = 123, 查看当前线程的所有运行状态信息,可以使用如下SQL语句: 152```select thread_state.* from thread, thread_state where thread.tid = 123 and thread.id = thread_state.itid``` 153 154### 堆内存数据变化表关系图 155native_hook表记录堆内存申请(AllocEvent)和释放(FreeEvent)数据。native_hook表通过ipid和itid字段分别与process和thread表的id字段关联,通过callChainId与native_hook_frame表的callChainId字段相关联。 156native_hook表字段解释如下: 157- callChainId:唯一标识一次堆内存申请或释放, 通过与native_hook_frame表关联可以拿到当前申请或释放的函数调用堆栈。 158- addr:堆内存申请/释放的地址。 159- native_hook_size:堆内存申请/释放的大小。 160 161native_hook_frame表记录内存申请/释放的调用堆栈。通过callChainId区分一组调用堆栈,depth为堆栈深度,depth为0时,表示当前行为栈顶数据。 162 163 164native_hook_statistic表记录内存申请/释放的统计信息。通过callChainId区分一组调用堆栈。每个统计事件将记录当前事件的callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。 165 166 167### 查询举例 168- 已知tid = 123,查看当前线程的所有堆内存变化信息,可以使用如下SQL语句: 169```select native_hook.* from thread, native_hook where thread.tid = 123 and thread.id = native_hook.itid``` 170- 已知callchainid = 1, 查看当前内存变化调用堆栈 171```select * from native_hook_frame where callchain_id = 1``` 172- 已知callchainid = 1, 查看当前内存变化调用堆栈对应的统计信息 173```select * from native_hook_statistic where callchain_id = 1``` 174 175### 日志表与进程线程表关系图 176log表记录日志信息。可以根据seq字段的连续性,来判断是否存在日志丢失的情况。 177 178### 查询举例 179- 已知tid = 123,查看当前线程的所有error级别的日志,可以使用如下SQL语句: 180```select * from log where tid = 123 and level = "error"``` 181 182### perf表之间关系图 183- perf_report:此表记录Hiperf工具采集数据时的配置信息。 184- perf_thread:此表记录hiperf采集到的进程和线程数据。 185- perf_sample:此表中记录Hiperf工具的采样信息。sample_id唯一表识一次采样记录,与perf_callchain表中的sample_id字段相关联。thread_id为线程号。与perf_thread表中的thread_id字段相关联。event_type_id为当前采样的事件类型id,与perf_report表中的id字段相关联。 186- perf_callchain:此表格记录的是调用栈信息。 187- Perf_files:此表格主要存放着获取到的函数符号表和文件信息。file_id唯一表识一个文件,与perf_callchain表中的file_id字段相关联。 188 189 190### 查询举例 191- 已知同步后的时间戳为28463134340470,查询采样数据 192```select * from perf_sample where timestamp_trace = 28463134340470``` 193 194- 已知同步后的时间戳为28463134340470,查询采样数据对应的的调用栈信息 195```select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and A.sample_id = B.sample_id``` 196 197- 已知同步后的时间戳为28463134277762,查询采样数据的函数名及文件路径 198```select A.*, B.name, C.path from perf_sample as A, perf_callchain as B, perf_files as C where A.timestamp_trace = 28463134277762 and B.sample_id = A.sample_id and B.callchain_id = 0 and B.file_id = C.file_id and C.serial_id = 0``` 199 200- 已知线程号为6700,查询所有的采样记录 201```select * from perf_sample where thread_id = 6700``` 202 203- 已知进程号为7863,查询所有的采样记录 204```select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = B.thread_id``` 205 206- 查询所有采样对应的事件类型 207```select A.*, B.report_value from perf_sample as A, perf_report as B where A.event_type_id = B.id``` 208 209### 帧渲染表之间的关系图 210frame_slice: 记录RS(RenderService)和应用的帧渲染。 211gpu_slice: 记录RS的帧对应的gpu渲染时长。 212frame_maps:记录应用到RS的帧的映射关系。 213 214### 查询示例 215- 已知进程,查询进程对应的实际渲染帧 216```select * from frame_slice where ipid = 1``` 217 218- 已知进程的实际渲染帧的dst为12,求其对应的RS进程的渲染帧 219```select * from frame_slice where id = 12 ``` 220 221- 已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长 222```select * from gpu_slice where frame_row = 14``` 223 224### JS内存数据表关系图 225 226js_heap_files:记录js内存数据的文件名和文件索引 227 228 229 230js_heap_nodes:记录js内存类对象数据 231js_heap_edges:记录js内存类对象的成员数据 232js_heap_trace_node:记录timeline的调用栈信息 233js_heap_sample:记录timeline的时间轴信息 234 235## TraceStreamer输出数据库表格详细介绍 236### app_name表 237#### 表结构 238| Columns Name | SQL TYPE | 239|---- |---- | 240|id |INT | 241|flag |INT | 242|app_name |INT | 243|app_key |INT | 244#### 表描述 245记录HiSysevent上报事件中的IDE相关事件中APPNAME的表关联信息。 246#### 字段详细描述 247- id:用于与表hisys_event_measure表中的key_id字段做对应 248- app_name:对应的事件的信息ID 249- app_key:对应的事件的APPNAME字段的信息ID 250 251### args表 252#### 表结构 253| Columns Name | SQL TYPE | 254|---- |---- | 255|id |INT | 256|key |INT | 257|datatype |INT | 258|value |INT | 259|argset |INT | 260#### 表描述 261记录方法的参数集合。 262#### 字段详细描述 263- key:键 264- datatype:数据类型 265- value:取值 266- argset:参数集合 267 268### bio_latency_sample表 269#### 表结构 270| Columns Name | SQL TYPE | 271|---- |---- | 272|id |INT | 273|callchain_id |INT | 274|datatype |INT | 275|type |INT | 276|ipid |INT | 277|itid |INT | 278|start_ts |INT | 279|end_ts |INT | 280|latency_dur |INT | 281|tier |INT | 282|size |INT | 283|block_number |TEXT | 284|path |TEXT | 285|dur_per_4k |INT | 286#### 表描述 287记录IO操作相关方法调用,及调用栈数据。 288#### 字段详细描述 289- callchain_id:调用栈的唯一标识。与ebpf_callstack表中Callchain_id字段关联 290- type:事件类型其取值为枚举类型(DATA_READ,DATA_WRITE,METADATA_READ,- METADATA_WRITE,PAGE_IN,PAGE_OUT) 291- ipid:TS内部进程号 292- itid:TS内部线程号 293- start_ts:开始时间 294- end_ts:结束时间 295- latency_dur:总延迟 296- tier:优先级 297- size:文件大小 298- block_number:数据量大小(一般为4K) 299- path:路径id 300- dur_per_4k:每4k数据的平均延迟 301 302### callstack表 303#### 表结构 304| Columns Name | SQL TYPE | 305|---- |---- | 306|id |INT | 307|ts |INT | 308|dur |INT | 309|callid |INT | 310|cat |TEXT | 311|identify |INT | 312|name |TEXT | 313|depth |INT | 314|cookie |INT | 315|parent_id |INT | 316|argsetid |INT | 317|chainId |TEXT | 318|spanId |TEXT | 319|parentSpanId |TEXT | 320|flag |TEXT | 321|args |TEXT | 322#### 表描述 323记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步的调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号。 324#### 字段详细描述 325- dur:调用时长 326- callid:调用者的ID,比如针对线程表里面的id 327- identify:调用栈的名字,与表dataDict相关联能够取出其string值 328- name:调用名称 329- depth:调用深度 330- parent_id:父调用的id 331- spanId:分布式调用关联关系 332- flag:C表示分布式调用发送方,S表示接受方 333- args:分布式调用函数参数 334 335### clk_event_filter表 336#### 表结构 337| Columns Name | SQL TYPE | 338|---- |---- | 339|id |INT | 340|type |TEXT | 341|name |TEXT | 342|cpu |INT | 343#### 表描述 344记录时钟信息。 345#### 字段详细描述 346- Type:时钟事件类型 347- Name:时钟事件名称 348 349### clock_event_filter表 350#### 表结构 351| Columns Name | SQL TYPE | 352|---- |---- | 353|id |INT | 354|type |TEXT | 355|name |TEXT | 356|cpu |INT | 357#### 表描述 358此结构用来维护时钟事件,cpu与唯一的ID做关联。 359#### 主要字段描述 360- Type:时钟事件类型 361- Name:时钟事件名称 362 363### cpu_measure_filter表 364#### 表结构 365| Columns Name | SQL TYPE | 366|---- |---- | 367|id |INT | 368|type |TEXT | 369|name |TEXT | 370|cpu |INT | 371#### 表描述 372将cpu号作为key1,cpu的频率,空闲等状态作为key2,唯一确定一个filter_id。 373#### 主要字段描述 374- Id(filterid), cpu:事件名称,cpu号 375 376### cpu_usage表 377#### 表结构 378| Columns Name | SQL TYPE | 379|---- |---- | 380|ts |INT | 381|dur |INT | 382|total_load |REAL | 383|user_load |REAL | 384|system_load |REAL | 385|process_num |INT | 386#### 表描述 387记录了与CPU使用率相关的数据。 388#### 主要字段描述 389- total_load:总负荷 390- user_load:用户负载 391- system_load:系统负载 392- process_num:线程数 393 394### data_dict表 395#### 表结构 396| Columns Name | SQL TYPE | 397|---- |---- | 398|id |INT | 399|data |TEXT | 400#### 表描述 401此表记录了一个数据类型ID和字符串的映射。 402#### 主要字段描述 403- id:索引值 404- data:字符串 405 406### data_type表 407#### 表结构 408| Columns Name | SQL TYPE | 409|---- |---- | 410|id |INT | 411|typeId |INT | 412|desc |TEXT | 413#### 表描述 414此表记录了一个数据类型ID和数据描述的映射。 415#### 主要字段描述 416- typeId::数据类型id 417- Desc:数据类型描述 418 419### diskio表 420#### 表结构 421| Columns Name | SQL TYPE | 422|---- |---- | 423|ts |INT | 424|dur |INT | 425|rd |INT | 426|wr |INT | 427|rd_speed |REAL | 428|wr_speed |REAL | 429|rd_count |INT | 430|wr_count |INT | 431|rd_count_speed |REAL | 432|wr_count_speed |REAL | 433#### 表描述 434记录了与磁盘读写相关的数据。 435#### 主要字段描述 436- rd_sectors_kb:读数据的速度 437- wr_sectors_kb:写入数据的速度 438- ts:时间戳 439 440### ebpf_callstack表 441#### 表结构 442| Columns Name | SQL TYPE | 443|---- |---- | 444|id |INT | 445|callchain_id |INT | 446|depth |TEXT | 447|ip |TEXT | 448|symbols_id |INT | 449|file_path_id |INT | 450#### 表描述 451记录了与磁盘读写相关的数据。 452#### 主要字段描述 453- callchain_id:调用栈的唯一标识。与ebpf_callstack表中Callchain_id字段关联 454- depth:调用栈深度。取值为零时表示栈顶 455- ip:调用栈ip 456- symbols_id:调用栈函数名称, 与data_dict中的id字段关联 457- file_path_id:调用栈函数所属文件路径, 与data_dict中的id字段关联 458 459### file_system_sample表 460#### 表结构 461| Columns Name | SQL TYPE | 462|---- |---- | 463|callchain_id |INT | 464|type |INT | 465|ipid |INT | 466|itid |INT | 467|start_ts |INT | 468|end_ts |INT | 469|dur |INT | 470|return_value |TEXT | 471|error_code |TEXT | 472|fd |INT | 473|file_id |INT | 474|size |INT | 475|first_argument |TEXT | 476|second_argument |TEXT | 477|third_argument |TEXT | 478|fourth_argument |TEXT | 479#### 表描述 480记录了调用栈的相关信息。 481#### 主要字段描述 482- callchain_id:调用栈信息ID与file_system_callstack表中call_chain_id字段相关联 483- type:对应文件操作open,close,read,write 484- ipid:线程所属的进程ID 485- start_ts:开始时间 486- end_ts:结束时间 487- dur:耗时 488- return_value:文件操作的返回值 489- error_code:文件操作发生错误时的错误码 490- fd:文件描述符fd 491- file_id:当type为open,close时为其操作的文件路径,当type为read,write时为固定字段(null) 492- size:在type为read,write时对应的文件的读或者写的大小 493- first_argument:参数一 494- second_argument:参数二 495- third_argument:参数三 496- fourth_argument:参数四 497 498### hidump表 499#### 表结构 500| Columns Name | SQL TYPE | 501|---- |---- | 502|id |INT | 503|ts |INT | 504|fps |INT | 505#### 表描述 506此表记录了设备的帧率信息,fps。 507#### 相关字段描述 508- fps:帧率值 509 510### hisys_event_measure表 511#### 表结构 512| Columns Name | SQL TYPE | 513|---- |---- | 514|serial |INT | 515|ts |INT | 516|name_id |INT | 517|key_id |INT | 518|type |INT | 519|int_value |REAL | 520|string_value |TEXT | 521#### 表描述 522记录所有的system event事件的相关数据,及其相关表的映射信息。 523#### 相关字段描述 524- serial:每条数据过来携带唯一一条id作为标识 525- name_id:存放事件对应的ID,与data_dict表相关联可以取出对应的字段 526- key_id:存放事件包含的字段的ID,与表app_name的id字段相关联,找到app_name表的 id字段对应行的app_key字段与表data_dict表相关联取出对应的字段 527- type:存放事件所包含的字段的值所属的类型为int型还是string(0为int,1为string) 528- int_value:存放本事件所包含的字段的int型的值 529- string_value:存放本事件所包含的字段的string型的值 530 531### instant表 532#### 表结构 533| Columns Name | SQL TYPE | 534|---- |---- | 535|ts |INT | 536|name |TEXT | 537|ref |INT | 538|wakeup_from |INT | 539|ref_type |TEXT | 540|value |REAL | 541#### 表描述 542记录了系统中的waking和wakeup事件。 543#### 字段描述 544- ts:唤醒时间 545- name:唤醒事件的名称 546- ref:索引号 547- wakeup_from:唤醒当前线程的内部线程号(itid) 548- ref_type:描述了value字段的类型(一般取值为itid) 549- value:一般为当前线程的内部线程号取值 550 551### irq表 552#### 表结构 553| Columns Name | SQL TYPE | 554|---- |---- | 555|id |INT | 556|ts |INT | 557|dur |INT | 558|callid |INT | 559|cat |TEXT | 560|name |TEXT | 561|depth |INT | 562|cookie |INT | 563|parent_id |INT | 564|argsetid |INT | 565|chainId |TEXT | 566|spanId |TEXT | 567|parentSpanId |TEXT | 568|flag |TEXT | 569|args |TEXT | 570#### 表描述 571记录中断相关事件。 572#### 相关字段描述 573- dur:调用中断时长 574- callid:调用中断者的ID,比如针对线程表里面的id 575- cat:调用栈数据类型(取值范围:irq,softirq...) 576- name:调用中断的名称 577- depth:中断调用的深度 578- parent_id:父调用中断的id 579- spanId:分布式调用中断关联关系 580 581### js_heap_edges表 582#### 表结构 583| Columns Name | SQL TYPE | 584| ------------- | -------- | 585| file_id | INT | 586| edge_index | INT | 587| type | INT | 588| name_or_index | INT | 589| to_node | INT | 590| from_node_id | INT | 591| to_node_id | INT | 592#### 表描述 593记录js内存数据类对象对应的成员的信息。 594#### 相关字段描述 595- file_id:文件ID 596- edge_index:成员的索引号 597- type:成员的类型,取值范围为js_heap_info表中的edge_types 598- name_or_index:数据名称,取值为js_heap_string表中的下标索引 599- to_node:此成员指向的类对象在nodes数组中的索引 600- from_node_id:类对象ID,该类对象指向此成员数据 601- to_node_id:此成员指向到的类对象nodes数组中的ID 602 603### js_heap_files表 604#### 表结构 605| Columns Name | SQL TYPE | 606| ------------ | -------- | 607| id | INT | 608| file_name | TEXT | 609| start_time | INT | 610| end_time | INT | 611| pid | INT | 612#### 表描述 613记录了js内存数据的文件名称和时间。 614#### 相关字段描述 615- id:文件ID 616- file_name:文件名称 617- start_time:数据抓取的起始时间 618- end_time:数据抓取的终止时间 619- pid:进程号 620 621### js_heap_info表 622#### 表结构 623| Columns Name | SQL TYPE | 624| ------------ | -------- | 625| file_id | INT | 626| key | TEXT | 627| type | INT | 628| int_value | INT | 629| str_value | TEXT | 630#### 表描述 631记录了js内存数据类型,如nodes和edges的字段类型和数据总数。 632#### 相关字段描述 633- file_id:文件ID 634- key:类型名称 635- type:数据类型索引 636- int_value:int类型的数据值,如count类型数据 637- str_value:string类型的数据值,如typename 638 639### js_heap_location表 640#### 表结构 641| Columns Name | SQL TYPE | 642| ------------ | -------- | 643| file_id | INT | 644| object_index | INT | 645| script_id | INT | 646| line | INT | 647| column | INT | 648#### 表描述 649记录了js内存location节点相关数据,此表目前无抓取到的数据。 650#### 相关字段描述 651- file_id:文件ID 652- object_index:与location关联的类对象的索引,取值为js_heap_nodes的下标索引 653- script_id:关联到的类对象所在文件的绝对路径ID 654- line:在类对象所在的文件中的行号 655- column:在类对象所在的文件中的列号 656 657### js_heap_nodes表 658#### 表结构 659| Columns Name | SQL TYPE | 660| ------------- | -------- | 661| file_id | INT | 662| node_index | TEXT | 663| type | INT | 664| name | INT | 665| id | TEXT | 666| self_size | INT | 667| edge_count | INT | 668| trace_node_id | INT | 669| detachedness | INT | 670#### 表描述 671记录了js内存数据中类对象的数据。 672#### 相关字段描述 673- file_id:文件ID 674- node_index:类对象的索引 675- type:类对象的类型 676- name:类对象的名称 677- id:类对象的唯一ID 678- self_size:该类对象所有成员的大小(以字节为单位) 679- edge_count:该类对象指向的类成员的个数 680- trace_node_id:该类对象关联到js_heap_trace_node表中的调用栈ID 681- detachedness:是否可以从window全局对象访问此节点,0表示是,1表示否 682 683### js_heap_sample表 684#### 表结构 685| Columns Name | SQL TYPE | 686| ---------------- | -------- | 687| file_id | INT | 688| timestamp_us | INT | 689| last_assigned_id | INT | 690#### 表描述 691记录了timeline模式下的时间轴信息。 692#### 相关字段描述 693- file_id:文件ID 694- timestamp_us:时间信息 695- last_assigned_id:当前时间点的id 696 697### js_heap_string表 698#### 表结构 699| Columns Name | SQL TYPE | 700| ------------ | -------- | 701| file_id | INT | 702| file_index | INT | 703| string | TEXT | 704#### 表描述 705记录了js内存数据中的字符串。 706#### 相关字段描述 707- file_id:文件ID 708- file_index:索引 709- string:对应的字符串信息 710 711### js_heap_trace_function_info表 712#### 表结构 713| Columns Name | SQL TYPE | 714| -------------- | -------- | 715| file_id | INT | 716| function_index | INT | 717| function_id | INT | 718| name | INT | 719| script_name | INT | 720| script_id | INT | 721| line | INT | 722| column | INT | 723#### 表描述 724记录了timeline模式下的调用栈的每个函数信息。 725#### 相关字段描述 726- file_id:文件ID 727- function_index:函数索引 728- function_id:函数ID 729- name:函数名称 730- script_name:关联到的类对象所在文件的绝对路径名称 731- script_id:关联到的类对象所在文件的绝对路径ID 732- line:在类对象所在的文件中的行号 733- column:在类对象所在的文件中的列号 734 735### js_heap_trace_node表 736#### 表结构 737| Columns Name | SQL TYPE | 738| ------------------- | -------- | 739| file_id | INT | 740| id | INT | 741| function_info_index | INT | 742| count | INT | 743| size | INT | 744| parent_id | INT | 745#### 表描述 746记录了timeline模式下的调用栈的信息。 747#### 相关字段描述 748- file_id:文件ID 749- id:调用栈节点索引 750- function_info_index:函数信息索引 751- count:调用栈个数 752- size:调用栈大小 753- parent_id:调用栈父节点 754 755### live_process表 756#### 表结构 757| Columns Name | SQL TYPE | 758|---- |---- | 759|ts |INT | 760|dur |INT | 761|cpu_time |INT | 762|process_id |INT | 763|process_name |TEXT | 764|parent_process_id |INT | 765|uid |INT | 766|user_name |TEXT | 767|cpu_usage |REAL | 768|pss_info |INT | 769|thread_num |INT | 770|disk_writes |INT | 771|disk_reads |INT | 772#### 表描述 773记录了一些实时的进程中执行的一些数据(Monitor)。 774#### 主要字段描述 775- process_id:进程id 776- process_name:进程名 777- parent_process_id:父进程的id 778- uid:用户id 779- user_name:用户名 780- cpu_usage:cpu使用率 781- pss_info:进程信息 782- thread_num:线程数量 783- disk_writes:磁盘写量 784- disk_reads:磁盘读量 785 786### log表 787#### 表结构 788| Columns Name | SQL TYPE | 789|---- |---- | 790|seq |INT | 791|ts |INT | 792|pid |INT | 793|tid |INT | 794|level |TEXT | 795|tag |TEXT | 796|context |TEXT | 797|origints |INT | 798#### 表描述 799记录日志信息。 800#### 关键字段描述 801- Seq:日志序号,保证日志解析的准确性 802- Ts:打印日志时间 803- Pid:日志的进程号 804- Tid:日志的线程号 805- Level:日志级别 806- Tag:日志标签 807- Context:日志内容 808 809### measure表 810#### 表结构 811| Columns Name | SQL TYPE | 812|---- |---- | 813|type |TEXT | 814|ts |INT | 815|dur |INT | 816|value |INT | 817|filter_id |INT | 818#### 表描述 819记录所有的计量值。 820#### 关键字段描述 821- type:固定字段(measure) 822- ts:事件时间 823- dur:该值持续的时长 824- value:数值 825- filter_id:对应filter表中的ID 826 827### measure_filter表 828#### 表结构 829| Columns Name | SQL TYPE | 830|---- |---- | 831|id |INT | 832|type |TEXT | 833|name |TEXT | 834|source_arg_set_id |INT | 835#### 表描述 836记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录。 837#### 字段详细描述 838过滤分类(type),过滤名称(key2),数据ID(key1)。 839数据ID在process_measure_filter, sys_event_filter中作为id。 840 841### meta表 842#### 表结构 843| Columns Name | SQL TYPE | 844|---- |---- | 845|name |TEXT | 846|value |TEXT | 847#### 表描述 848此表记录了数据解析或导出时的一些现场数据,比如使用的TraceStreamer版本, 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。 849#### 主要字段描述 850- Name:指定元数据的key 851- Value:指定元数据的value 852 853### native_hook表 854#### 表结构 855| Columns Name | SQL TYPE | 856|---- |---- | 857|id |INT | 858|callChainId |INT | 859|ipid |INT | 860|itid |INT | 861|event_type |TEXT | 862|sub_type_id |NUM | 863|start_ts |INT | 864|end_ts |INT | 865|dur |INT | 866|addr |INT | 867|heap_size |INT | 868|all_heap_size |INT | 869|current_size_dur |INT | 870|last_lib_id |INT | 871#### 表描述 872记录native_hook抓取的某个进程的堆内存,内存映射相关数据。 873#### 关键字段描述 874- callChainId:唯一标识一条native_hook数据 875- event_type:事件类型取值范围(AllocEvent,FreeEvent,MmapEvent, MunmapEvent) 876- sub_type_id:子事件类型(只有sub_type字段为MmapEvent时,该字段才会有值) 877- start_ts:申请内存开始时间 878- end_ts:释放内存时间 879- Dur:申请内存活跃时间 880- Addr:申请内存地址 881- mem_size:申请或释放内存大小 882- all_mem_size:从采集数据开始到当前时刻,申请并活跃的内存总量。 event_type为AllocEvent或者FreeEvent时,表示活跃的堆内存总量。当event_type为MmapEvent或者MunmapEvent时,表示活跃的映射内存总量 883- current_size_dur:表示当前活跃内存总量的持续时间 884- last_lib_id:函数调用栈他最后一个函数所属的文件路径,除了文件名中带musl和libc++ 885 886### native_hook_frame表 887#### 表结构 888| Columns Name | SQL TYPE | 889|---- |---- | 890|id |INT | 891|callchain_id |INT | 892|depth |INT | 893|symbol_id |INT | 894|file_id |INT | 895|offset |INT | 896|symbol_offset |INT | 897#### 表描述 898记录了内存的申请和释放的堆栈。 899#### 相关字段描述 900- callchain_id:标识一组调用堆栈 901- depth:调用栈深度 902- symbol_id:函数名 903- file_id:函数所属文件 904 905### native_hook_statistic表 906#### 表结构 907| Columns Name | SQL TYPE | 908|---- |---- | 909|id |INT | 910|callchain_id |INT | 911|ipid |INT | 912|ts |INT | 913|type |INT | 914|apply_count |INT | 915|release_count |INT | 916|apply_size |INT | 917|release_size |INT | 918 919#### 表描述 920该表记录了内存申请/释放的统计信息。 921#### 关键字段描述 922- callchain_id:内存分配的回调链id 923- ipid:进程id 924- ts:统计数据上报时间 925- type:事件类型,0代表malloc事件,1代表mmap事件 926- apply_count:当前调用栈内存分配总次数 927- release_count:当前调用栈内存释放总次数 928- apply_size:当前调用栈累计分配总大小 929- release_size:当前调用栈累计释放总大小 930 931### network表 932#### 表结构 933| Columns Name | SQL TYPE | 934|---- |---- | 935|ts |INT | 936|dur |INT | 937|tx |INT | 938|rx |INT | 939|tx_speed |REAL | 940|rx_speed |REAL | 941|packet_in |INT | 942|packet_in_sec |REAL | 943|packet_out |INT | 944|packet_out_sec |REAL | 945|net_type |TEXT | 946#### 表描述 947记录了网络数据传输相关的信息。 948#### 主要字段描述 949- tv_sec:时间,秒为单位 950- tv_nsec:时间,纳秒为单位 951- tx_bytes:网络数据的写入量 952- rx_bytes:网络数据的读取量 953 954### paged_memory_sample表 955#### 表结构 956| Columns Name | SQL TYPE | 957|---- |---- | 958|id |INT | 959|callchain_id |INT | 960|type |INT | 961|ipid |INT | 962|start_ts |INT | 963|end_ts |INT | 964|dur |INT | 965|size |INT | 966|addr |TEXT | 967|itid |INT | 968#### 表描述 969记录了网络数据传输相关的信息。 970#### 主要字段描述 971- callchain_id: 取值相同的一组数据,表示一个完整的调用栈 972- type:事件类型 973- ipid:TS内部进程号 974- start_ts:开始时间 975- end_ts:结束时间 976- dur:持续时间 977- size:操作页数 978- itid:TS内部线程号 979 980### perf_callchain表 981#### 表结构 982| Columns Name | SQL TYPE | 983|---- |---- | 984|id |INT | 985|callchain_id |INT | 986|depth |INT | 987|vaddr_in_file |INT | 988|file_id |INT | 989|symbol_id |INT | 990|name |TEXT | 991#### 表描述 992记录了Hiperf采样数据的调用栈信息。 993#### 主要字段描述 994- callchain_id:标识一组调用堆栈 995- depth:调用栈深度 996- vaddr_in_file:函数在文件中的虚拟地址 997- file_id:与PerfFiles中的file_id字段相关联 998- symbol_id:与PerfFiles中的symbol_id相关联 999- name:函数名 1000 1001### perf_files表 1002#### 表结构 1003| Columns Name | SQL TYPE | 1004|---- |---- | 1005|id |INT | 1006|file_id |INT | 1007|serial_id |INT | 1008|symbol |TEXT | 1009|path |TEXT | 1010#### 表描述 1011记录Hiperf工具采集到的函数符号表和文件名。 1012#### 主要字段描述 1013- file_id:文件编号 1014- serial_id:一个文件中可能有多个函数,serial_id表示函数的编号 1015- symbol:函数名 1016- path:文件路径 1017 1018### perf_report表 1019#### 表结构 1020| Columns Name | SQL TYPE | 1021|---- |---- | 1022|id |INT | 1023|report_type |TEXT | 1024|report_value |TEXT | 1025#### 表描述 1026记录Hiperf工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 1027#### 主要字段描述 1028- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令) 1029- report_value:对应类型的取值 1030 1031### perf_sample表 1032#### 表结构 1033| Columns Name | SQL TYPE | 1034|---- |---- | 1035|id |INT | 1036|callchain_id |INT | 1037|timestamp |INT | 1038|thread_id |INT | 1039|event_count |INT | 1040|event_type_id |INT | 1041|timestamp_trace |INT | 1042|cpu_id |INT | 1043|thread_state |TEXT | 1044#### 表描述 1045记录Hiperf工具的采样信息。 1046#### 主要字段描述 1047- timestamp:未进行时钟源同步的时间戳 1048- thread_id:线程号 1049- event_count:采样统计 1050- event_type_id:事件类型编号。与PerfReport表的id字段相关联 1051- timestamp_trace:时钟源同步后的时间戳 1052- cpu_id:cpu核编号 1053- thread_state:线程状态。采样对应Sched_Waking事件时,为Runing;对应Sched_Switch事件时,为Suspend。其余事件类型,为“-” 1054 1055### perf_thread表 1056#### 表结构 1057| Columns Name | SQL TYPE | 1058|---- |---- | 1059|id |INT | 1060|thread_id |INT | 1061|process_id |INT | 1062|thread_name |TEXT | 1063#### 表描述 1064记录Hiperf工具采集到的进程和线程数据。 1065#### 主要字段描述 1066- thread_id:线程号 1067- process_id:进程号 1068- thread_name:线程名 1069 1070### process表 1071#### 表结构 1072| Columns Name | SQL TYPE | 1073|---- |---- | 1074|id |INT | 1075|ipid |INT | 1076|type |TEXT | 1077|pid |INT | 1078|name |TEXT | 1079|start_ts |INT | 1080|switch_count |INT | 1081|thread_count |INT | 1082|slice_count |INT | 1083|mem_count |INT | 1084#### 表描述 1085记录了进程相关数据。 1086#### 关键字段描述 1087- id:进程在数据库重新重新定义的id,从0开始序列增长 1088- ipid:TS内部进程id 1089- type:固定取值:process 1090- pid:进程的真实id 1091- name:进程名字 1092- start_ts:开始时间 1093- switch_count:统计内部有多少个线程有切换 1094- thread_count:统计其线程个数 1095- slice_count:进程内有多个线程有slice数据 1096- mem_count:进程是否有内存数据 1097 1098### process_filter表 1099#### 表结构 1100| Columns Name | SQL TYPE | 1101|---- |---- | 1102|id |INT | 1103|type |TEXT | 1104|name |TEXT | 1105|ipid |INT | 1106#### 表描述 1107将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在filter表中。 1108#### 主要字段描述 1109- id:进程id 1110- type:固定取值:process_filter 1111- name:进程名 1112- ipid:该进程表中的id与process表中的id相关联 1113 1114### process_measure表 1115#### 表结构 1116| Columns Name | SQL TYPE | 1117|---- |---- | 1118|type |TEXT | 1119|ts |INT | 1120|value |NUM | 1121|filter_id |INT | 1122#### 表描述 1123保存进程的内存,堆栈值等所有计量值信息。 1124#### 字段详细描述 1125- ts:事件时间 1126- value:数值 1127- filter_id:对应process_measure_filter表中的ID 1128 1129### process_measure_filter表 1130#### 表结构 1131| Columns Name | SQL TYPE | 1132|---- |---- | 1133|id |INT | 1134|type |TEXT | 1135|name |TEXT | 1136|ipid |INT | 1137#### 表描述 1138将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在measure_filter表中。 1139#### 字段详细描述 1140- type:固定取值:process_measure_filter 1141- name:cpu状态名 1142- ipid:进程内部编号 1143 1144### raw表 1145#### 表结构 1146| Columns Name | SQL TYPE | 1147|---- |---- | 1148|id |INT | 1149|type |TEXT | 1150|ts |INT | 1151|name |TEXT | 1152|cpu |INT | 1153|itid |INT | 1154#### 表描述 1155记录了系统中的waking、wakup、cpu_idel、cpu_frequency数据。 1156#### 相关字段描述 1157- type:固定字段(raw) 1158- name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking) 1159- cpu:事件发生在哪个CPU 1160- itid:时间对应哪个utid 1161 1162### sched_slice表 1163#### 表结构 1164| Columns Name | SQL TYPE | 1165|---- |---- | 1166|id |INT | 1167|type |TEXT | 1168|ts |INT | 1169|dur |INT | 1170|ts_end |INT | 1171|cpu |INT | 1172|itid |INT | 1173|end_state |TEXT | 1174|priority |INT | 1175#### 表描述 1176此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录。 1177#### 主要字段描述 1178- ts:事件发生事件 1179- type:固定字段(sched_slice) 1180- dur:状态持续时长 1181- ts_end:状态结束时长 1182- cpu:事件发生在哪个cpu 1183- itid:事件对应哪个utid 1184- end_state:线程的终结状态 1185 1186### smaps表 1187#### 表结构 1188| Columns Name | SQL TYPE | 1189|---- |---- | 1190|id |INT | 1191|timestamp |INT | 1192|start_addr |TEXT | 1193|end_addr |TEXT | 1194|dirty |INT | 1195|swapper |INT | 1196|resident_size |INT | 1197|pss |INT | 1198|virtaul_size |INT | 1199|reside |REAL | 1200|protection_id |INT | 1201|path_id |INT | 1202#### 表描述 1203记录进程的内存消耗的相关信息采样。 1204#### 主要字段描述 1205- id:状态持续时长 1206- timestamp:事件发生事件 1207- start_addr:内存段地址的起始位置 1208- end_addr:内存段地址的结束位置 1209- dirty:其他进程共享的被写的页的大小 + 已被改写的私有页面的大小 1210- swapper:存在于交换分区的数据大小 1211- resident_size:实际分配的内存大小 1212- pss:平摊计算后的实际物理使用内存 1213- virtaul_size:虚拟内存空间的大小 1214- reside:实际分配的内存大小与虚拟内存空间的大小的比 1215- protection_id:内存段的权限id与表data_dict的id字段相关联 1216- path_id:如果区域是从文件映射的,则这是文件的名称对应的id序号与表data_dict的id字段相关联 1217 1218### stat表 1219#### 表结构 1220| Columns Name | SQL TYPE | 1221|---- |---- | 1222|event_name |TEXT | 1223|stat_type |TEXT | 1224|count |INT | 1225|serverity |TEXT | 1226|source |TEXT | 1227#### 表描述 1228此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解。 1229#### 主要字段描述 1230- event_name:数据类型 1231- stat_type:数据状态 1232- count:数据条数 1233- severity:严重级别 1234- source:数据来源 1235 1236### symbols表 1237#### 表结构 1238| Columns Name | SQL TYPE | 1239|---- |---- | 1240|id |INT | 1241|funcname |TEXT | 1242|addr |INT | 1243#### 表描述 1244此表记录了被调用函数与其地址的映射关系。 1245#### 相关字段描述 1246- funcname:系统调用名称 1247- adr:系统调用地址 1248 1249### syscall表 1250#### 表结构 1251| Columns Name | SQL TYPE | 1252|---- |---- | 1253|syscall_num |INT | 1254|type |TEXT | 1255|ipid |INT | 1256|ts |INT | 1257|ret |INT | 1258#### 表描述 1259记录用户空间函数与内核空间函数相互调用记录。 1260#### 相关字段描述 1261- syscall_num:系统调用的序号 1262- type:固定取值:enter或者exit 1263- ipid:线程所属的进程ID 1264- ts:时间戳 1265- ret:返回值,在type为exit时有效 1266 1267### sys_event_filter表 1268#### 表结构 1269| Columns Name | SQL TYPE | 1270|---- |---- | 1271|id |INT | 1272|type |TEXT | 1273|name |TEXT | 1274#### 表描述 1275记录所有的filter。 1276#### 相关字段描述 1277- type:文件类型 1278- name:文件名 1279 1280### sys_mem_measure表 1281#### 表结构 1282| Columns Name | SQL TYPE | 1283|---- |---- | 1284|type |TEXT | 1285|ts |INT | 1286|value |INT | 1287|filter_id |INT | 1288#### 表描述 1289记录系统内存与系统虚拟内存。 1290#### 相关字段描述 1291- ts:事件时间 1292- value:数值 1293- filter_id:对应filter表中的ID 1294 1295### thread表 1296#### 表结构 1297| Columns Name | SQL TYPE | 1298|---- |---- | 1299|id |INT | 1300|itid |INT | 1301|type |TEXT | 1302|tid |INT | 1303|name |TEXT | 1304|start_ts |INT | 1305|end_ts |INT | 1306|ipid |INT | 1307|is_main_thread|INT | 1308|switch_count |INT | 1309#### 表描述 1310记录了线程相关数据。 1311#### 字段详细描述 1312- id:线程在数据库重新重新定义的id,从0开始序列增长 1313- itid:TS内部线程id 1314- type:固定字段(thread) 1315- tid:线程号 1316- name:线程名 1317- start_ts:开始时间 1318- end_ts:结束时间 1319- ipid:线程所属的进程id, 关联process表中的ID 1320- is_main_thread:是否主线程,主线程即该线程实际就是进程本身 1321- switch_count:当前线程的切换次数 1322 1323### thread_filter表 1324#### 表结构 1325| Columns Name | SQL TYPE | 1326|---- |---- | 1327|id |INT | 1328|type |TEXT | 1329|name |TEXT | 1330|itid |INT | 1331#### 表描述 1332将线程ID作为key1,线程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在filter表中。 1333#### 主要字段描述 1334- id:线程id 1335- type:线程类型 1336- name:线程名称 1337- itid:该表中的tid与thread表中的tid相关联 1338 1339### thread_state表 1340#### 表结构 1341| Columns Name | SQL TYPE | 1342|---- |---- | 1343|id |INT | 1344|type |TEXT | 1345|ts |INT | 1346|dur |INT | 1347|cpu |INT | 1348|itid |INT | 1349|tid |INT | 1350|pid |INT | 1351|state |TEXT | 1352#### 表描述 1353记录了线程状态相关的数据。 1354#### 字段详细描述 1355- id:线程状态在数据库中的id,从0开始序列增长 1356- ts:该线程状态的起始时间 1357- dur:该线程状态的持续时间 1358- cpu:该线程在哪个cpu上执行(针对running状态的线程) 1359- itid:该状态所属的线程id, 关联线程表中的id 1360- tid:线程号 1361- pid:进程号 1362- state:线程实际的的状态值 1363``` 1364'R', Runnable状态 1365"S", interruptible sleep 1366"D", uninterruptible sleep 1367"D-IO", uninterruptible io 1368"D-NIO", uninterruptible nio 1369"Runing", Runing状态 1370"I", interrupted 1371"T", Traced 1372"X", ExitedDead 1373"Z", Zombie 1374"I", CloneThread 1375"I", TaskKilled 1376"DK", 1377"DK-IO", 1378"DK-NIO", 1379"TK", TracedKill 1380"R", WakeKill 1381"P", Parked 1382"R+", ForeGround 1383``` 1384 1385### clock_snapshot表 1386#### 表结构 1387| Columns Name | SQL TYPE | 1388|---- |---- | 1389|clock_id |INT | 1390|ts |INT | 1391|clock_name |TEXT | 1392#### 表描述 1393时钟号和时间,时钟名的映射表。 1394#### 关键字段描述 1395- clock_id:时钟号 1396- ts:时钟快照报的时间 1397- clock_name:时钟号对应的时钟名字 1398时钟快照是用来对齐不同时钟号的时间 1399比如,时钟号1的时间100,和时钟号2的时间200对齐 1400则时钟号为2 的250,转换为时钟号1的时间后,为150 1401 1402### datasource_clockid表 1403#### 表结构 1404| Columns Name | SQL TYPE | 1405|---- |---- | 1406|data_source_name |TEXT | 1407|clock_id |INT | 1408#### 表描述 1409数据源和时钟号的映射表。 1410#### 关键字段描述 1411- data_source_name:数据源的名称,和数据源的插件名保持一致 1412- clock_id:时钟号,对应clock_snapshot中的时钟号 1413这个表是用来告诉IDE,不同的事件源的事件,原始时钟号是多少,在数据库中保存的事件,通常是转换为boottime后的时间,但有些情况下,IDE仍然需要知道原始的时钟号是怎样的 1414### frame_slice表 1415### 表结构 1416| Columns Name | SQL TYPE | 1417|---- |---- | 1418|ts |INT | 1419|vsync |INT | 1420|ipid |INT | 1421|itid |INT | 1422|callstack_id |INT | 1423|dur |INT | 1424|src |TEXT | 1425|dst |INT | 1426|type |INT | 1427|flag |INT | 1428|depth |INT | 1429|frame_no |INT| 1430#### 表描述 1431应用的实际渲染帧和期望渲染帧的开始时间,持续时长,以及RenderService和App之间的关联关系。 1432#### 关键字段描述 1433- callstack_id:该帧数据对应着callstack表的调用栈所在的行数 1434- dur:该帧渲染时长(当数据不完整时,改行数据为空) 1435- src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割 1436- dst:该帧对应的渲染帧是哪一行 1437- type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧 1438- flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧, 2 表示数据不需要绘制(没有frameNum信息) 1439- depth:预留 1440- frame_no:预留 1441### frame_maps表 1442### 表结构 1443| Columns Name | SQL TYPE | 1444|---- |---- | 1445|ts |INT | 1446|src_row |INT | 1447|dst_row |INT | 1448#### 表描述 1449该表记录了app到RenderService的帧的映射关系,同frame_slice表中的src映射到dst的关系。 1450#### 关键字段描述 1451- src_row:frame_slice表中app的帧所在的行 1452- dst_row:frame_slice表中RenderService的帧所在的行 1453### gpu_slice表 1454### 表结构 1455| Columns Name | SQL TYPE | 1456|---- |---- | 1457|frame_row |INT | 1458|dur |INT | 1459#### 表描述 1460该表记录了每一帧数据在GPU上的渲染时长。 1461#### 关键字段描述 1462- frame_row:frame_slice表中渲染帧所在的行 1463- dur:帧渲染时长 1464### trace_range表 1465#### 表结构 1466| Columns Name | SQL TYPE | 1467|---- |---- | 1468|start_ts |INT | 1469|end_ts |INT | 1470#### 表描述 1471该表记录了解析开始时间以及结束时间。 1472#### 关键字段描述 1473- start_ts:trace的开始时间,纳秒为单位 1474- end_ts:trace的结束时间,纳秒为单位