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