• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:事件需要关注的信息名对应的信息值