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