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