TraceStreamer数据表概述
TraceStreamer可以将trace数据源转化为易于理解和使用的数据库。用户可以通过SmartPerf界面直观的研究系统跟踪数据,也可在理解TraceStreamer生成的数据库的基础上,在TraceStreamer的交互模式或者Smartperf的数据库查询模式下,使用SQL查询语句自由组装查看用户关心的数据。下文将对TraceStreamer生成的数据库进行详细描述,给用户使用SQL查询系统跟踪数据提供帮助。
TraceStreamer输出的数据表分类
- 常规泳道图数据表

- native memory数据源相关表

- perf相关数据表

- hisysevent相关数据表

TraceStreamer输出数据库包含以下表格
| 表名称 | 作用 |
|---|---|
| animation | 记录动效的响应时延和完成时延 |
| app_name | 记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系 |
| app_startup | 记录了应用启动相关数据 |
| args | 记录方法参数集合 |
| bio_latency_sample | 记录IO操作相关方法调用,及调用栈数据 |
| callstack | 记录调用堆栈和异步调用信息,其中depth仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,child_callid为子线程唯一号 |
| clk_event_filter | 记录时钟相关的信息 |
| clock_event_filter | 此结构用来维护时钟事件,cpu与唯一的ID做关联 |
| clock_snapshot | 时钟号和时间,时钟名的映射表 |
| cpu_measure_filter | cpu事件过滤器表 |
| cpu_usage | 记录CPU使用率事件 |
| datasource_clockid | 数据源和时钟号的映射表 |
| data_dict | 记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据 |
| data_type | 记录数据类型和typeId的关联关系 |
| device_info | 记录设备分辨率和帧率 |
| device_state | 记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息 |
| diskio | 记录磁盘读写数据事件 |
| dynamic_frame | 记录动效帧的分辨率和结束时间等 |
| ebpf_callstack | 记录了采样相关信息 |
| file_system_sample | 记录了调用栈的相关信息 |
| frame_maps | 记录应用到RS的帧的映射关系 |
| frame_slice | 记录RS(RenderService)和应用的帧渲染 |
| gpu_slice | 记录RS的帧对应的gpu渲染时长 |
| hidump | 记录FPS(Frame Per Second)数据 |
| hisys_all_event | 记录了所有HiSysEvent事件相关的原始数据 |
| hisys_event_measure | 记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件 |
| instant | 记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用 |
| irq | 记录中断相关事件 |
| js_config | 记录了arkTs数据采集的相关配置 |
| js_cpu_profiler_node | 记录了cpu profiler中node节点的数据 |
| js_cpu_profiler_sample | 记录了cpu profiler中sample节点的数据 |
| js_heap_edges | 记录了js内存数据类对象对应的成员的信息 |
| js_heap_files | 记录了js内存数据的名称和时间 |
| js_heap_info | 记录了js内存数据类型,如nodes和edges的字段类型和数据总数 |
| js_heap_location | 记录了js内存location节点相关数据 |
| js_heap_nodes | 记录了js内存类对象和其成员的对应关系 |
| js_heap_sample | 记录了timeline模式下的时间轴信息 |
| js_heap_string | 记录了js内存数据中的字符串 |
| js_heap_trace_function_info | 记录了timeline模式下的调用栈的每个函数信息 |
| js_heap_trace_node | 记录了timeline模式下的调用栈信息 |
| live_process | 记录了一些实时的进程中执行的一些数据 |
| log | 记录hilog打印日志数据 |
| measure | 记录所有的计量值 |
| measure_filter | 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录 |
| memory_ashmem | 记录了进程所占用的ashmem相关信息 |
| memory_dma | 记录了进程占用的DMA内存相关信息 |
| memory_process_gpu | 记录进程占用GPU内存相关信息 |
| memory_window_gpu | 记录窗口占用GPU内存相关信息 |
| meta | 记录执行解析操作相关的基本信息 |
| native_hook | 记录堆内存申请与释放相关的数据 |
| native_hook_frame | 记录堆内存申请与释放相关的调用栈 |
| native_hook_statistic | 记录堆内存申请与释放相关的统计信息 |
| network | 抓取网络信息传输时产生的一些相关信息 |
| paged_memory_sample | 记录内存操作相关方法调用,及调用栈数据 |
| perf_callchain | 记录Hiperf采样数据的调用栈信息 |
| perf_files | 记录Hiperf工具采集到的函数符号表和文件名 |
| perf_report | 记录Hiperf工具采集数据时的配置信息。包括抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称 |
| perf_sample | 记录Hiperf工具的采样信息 |
| perf_thread | 记录Hiperf工具采集到的进程和线程数据 |
| process | 记录所有的进程信息 |
| process_measure | 保存进程的所有计量值 |
| process_measure_filter | 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id |
| raw | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_waking,sched_wakup, cpu_idle事件的原始记录 |
| sched_slice | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录 |
| smaps | 记录进程的内存消耗的相关信息采样 |
| stat | 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解 |
| static_initalize | 记录了so初始化相关数据 |
| memory_cpu | 记录了cpu内存数据 |
| memory_profile | 记录了sys/kernel/debug/mali0/ctx/$(pidof xxx)/mem_profile节点相关数据 |
| memory_rs_image | 记录了hidumper抓取的界面的内存大小相关数据 |
| symbols | 记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间 |
| syscall | 记录用户空间函数与内核空间函数相互调用记录 |
| sys_event_filter | 记录所有的filter |
| sys_mem_measure | 记录了所有的系统内存相关的测量信息 |
| task_pool | 记录任务池相关数据,与callstack表相关联 |
| thread | 记录所有的线程信息 |
| thread_state | 记录线程状态信息 |
| trace_config | 记录trace数据源,proto的事件-plugin与其process_name |
| trace_range | 记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用 |
表与事件来源
| 表名称 | 事件源 | 插件名 | 备注 |
|---|---|---|---|
| animation | - | ftrace-plugin | 记录动效的响应时延和完成时延 |
| app_name | - | hisysevent-plugin | JSON数据源 |
| app_startup | - | ftrace-plugin | 记录应用启动的相关信息 |
| args | - | ftrace-plugin | 配合callstack使用 |
| bio_latency_sample | - | ebpf | IO操作相关方法调用,及调用栈数据 |
| callstack | - | ftrace-plugin | 异步或非异步的调用 |
| clk_event_filter | - | ftrace-plugin | 记录时钟相关的信息 |
| clock_event_filter | - | ftrace-plugin | 维护时钟事件 |
| clock_snapshot | - | 公共 | 时钟号和时间 |
| cpu_measure_filter | - | ftrace-plugin | cpu跟踪器,cpu频率等 |
| cpu_usage | - | cpu-plugin | cpu使用率 |
| data_dict | 通用的 | 公共 | 所有字符串的记录 |
| data_type | 通用的 | 公共 | 辅助表 |
| datasource_clockid | 通用的 | 公共 | 数据源和时钟号的映射表 |
| device_info | - | ftrace-plugin | 记录设备分辨率和帧率 |
| device_state | 通用的 | hisysevent-plugin | 记录设备屏幕亮度,蓝牙,位置等信息 |
| diskio | - | diskio-plugin | 记录磁盘读写数据 |
| dma_fence | - | ftrace-plugin | dma_fence数据 |
| dynamic_frame | - | ftrace-plugin | 动效帧的分辨率和结束时间等 |
| ebpf_callstack | - | ebpf | 磁盘读写相关的数据 |
| file_system_sample | - | ebpf | ebpf文件系统 |
| frame_maps | - | ftrace-plugin | 帧渲染数据,app到RS的映射 |
| frame_slice | - | ftrace-plugin | 帧渲染数据 |
| gpu_slice | - | ftrace-plugin | gpu渲染时长 |
| hidump | - | hidump-plugin | FPS数据 |
| hisys_all_event | - | hisysevent-plugin | JSON数据源 |
| hisys_event_measure | - | hisysevent-plugin | JSON数据源 |
| instant | - | ftrace-plugin | waking和wakeup事件 |
| irq | - | ftrace-plugin | 记录中断事件 |
| js_config | - | arkts-plugin | arkTs数据采集的配置 |
| js_cpu_profiler_node | - | arkts-plugin | 记录了cpu profiler中node节点的数据 |
| js_cpu_profiler_sample | - | arkts-plugin | 记录了cpu profiler中sample节点的数据 |
| js_heap_edges | - | arkts-plugin | js内存数据 |
| js_heap_files | - | arkts-plugin | js内存数据 |
| js_heap_info | - | arkts-plugin | js内存数据 |
| js_heap_location | - | arkts-plugin | js内存数据 |
| js_heap_nodes | - | arkts-plugin | js内存数据 |
| js_heap_sample | - | arkts-plugin | js内存数据 |
| js_heap_string | - | arkts-plugin | js内存数据 |
| js_heap_trace_function_info | - | arkts-plugin | js内存数据 |
| js_heap_trace_node | - | arkts-plugin | js内存数据 |
| live_process | - | process-plugin | 实时进程执行数据 |
| log | - | hilog-plugin | 系统日志 |
| measure | 通用的 | ftrace-plugin,memory-plugin | 系统中的计量值(数值型) |
| measure_filter | 通用的 | ftrace-plugin,memory-plugin | 计量值的查询辅助表 |
| memory_ashmem | - | memory-plugin | 进程所占用ashmem相关信息 |
| memory_cpu | - | memory-plugin | cpu内存数据 |
| memory_dma | - | memory-plugin | 进程占用的DMA内存相关信息 |
| memory_process_gpu | - | memory-plugin | 进程占用GPU内存相关信息 |
| memory_profile | - | memory-plugin | /sys/kernel/debug/mali0/ctx/$(pidof xxx)/mem_profile节点相关数据 |
| memory_rs_image | - | memory-plugin | 界面内存大小数据 |
| memory_window_gpu | - | memory-plugin | 窗口占用GPU内存相关信息 |
| meta | 通用的 | 公共 | 记录解析现场数据(解析时间,数据类型,解析工具等) |
| native_hook | - | nativehook/hookdaemon | malloc && mmap内存数据 |
| native_hook_frame | - | nativehook/hookdaemon | native_hook调用栈数据 |
| native_hook_statistic | - | nativehook/hookdaemon | malloc && mmap统计数据 |
| network | - | network-plugin | 记录网络数据传输相关的信息 |
| paged_memory_sample | - | hiperf-plugin | 网络数据传输相关的信息 |
| perf_callchain | - | hiperf-plugin | perf数据 |
| perf_files | - | hiperf-plugin | perf数据 |
| perf_napi_async | - | 公共 | perf数据 |
| perf_report | - | hiperf-plugin | perf数据 |
| perf_sample | - | hiperf-plugin | perf数据 |
| perf_thread | - | hiperf-plugin | perf数据 |
| process | - | 公共 | 进程信息 |
| process_measure | - | ftrace-plugin | 进程内存 |
| process_measure_filter | - | ftrace-plugin | process_measure的辅助表 |
| raw | - | ftrace-plugin | 线程唤醒信息 |
| sched_slice | - | ftrace-plugin | 配合线程状态表使用,sched_switch的原始数据 |
| smaps | - | memory-plugin | 进程的内存消耗 |
| stat | 通用的 | 公共 | 记录不同种类数据的数据量 |
| static_initalize | - | ftrace-plugin | so初始化数据 |
| symbols | - | ftrace-plugin | 符号表(地址到字符串的映射) |
| sys_event_filter | - | memory-plugin | filter信息 |
| sys_mem_measure | - | memory-plugin | 系统内存 |
| syscall | - | ftrace-plugin | 系统调用 sys_enter/exit |
| task_pool | - | ftrace-plugin | 任务池数据 |
| thread | 通用的 | 公共 | 线程信息(常用) |
| thread_state | 通用的 | ftrace-plugin | 线程调度图(常用) |
| trace_config | 通用的 | memory-plugin,hisysevent-plugin | 记录trace数据源 |
| trace_range | 通用的 | 公共 | trace数据的时长 |
| xpower_measure | xpower | 设备信息 |
表格关系图
进程表与线程表关系
当一个进程或者线程结束后,系统可能再次将该进程号或者线程号分配给其他进程或者线程,造成一个进程号或线程号代表多个进程或线程的情况。
Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。
thread表通过ipid字段关联process表的id字段,可以查询线程归属进程。

查询举例
- 已知pid = 123,查看当前进程下的所有线程信息,可以使用如下SQL语句:
select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id
线程表与线程运行状态表关系图
thread_state表记录所有线程的运行状态信息,包含ts(状态起始时间),dur(状态持续时间),cpu, itid, state(线程状态)。 thread表的id字段与thread_state表的itid字段相关联。

查询举例
- 已知tid = 123, 查看当前线程的所有运行状态信息,可以使用如下SQL语句:
select thread_state.* from thread, thread_state where thread.tid = 123 and thread.id = thread_state.itid
堆内存数据变化表关系图
native_hook表记录堆内存申请(AllocEvent)和释放(FreeEvent)数据。native_hook表通过ipid和itid字段分别与process和thread表的id字段关联,通过callchain_id与native_hook_frame表的callchain_id字段相关联。 native_hook表字段解释如下:
- callchain_id:唯一标识一次堆内存申请或释放, 通过与native_hook_frame表关联可以拿到当前申请或释放的函数调用堆栈。
- addr:堆内存申请/释放的地址。
- native_hook_size:堆内存申请/释放的大小。
native_hook_frame表记录内存申请/释放的调用堆栈。通过callchain_id区分一组调用堆栈,depth为堆栈深度,depth为0时,表示当前行为栈顶数据。

native_hook_statistic表记录内存申请/释放的统计信息。通过callchain_id区分一组调用堆栈。每个统计事件将记录当前事件的callchain_id,并统计当前调用栈内存分配/释放的总次数和总大小。

查询举例
- 已知tid = 123,查看当前线程的所有堆内存变化信息,可以使用如下SQL语句:
select native_hook.* from thread, native_hook where thread.tid = 123 and thread.id = native_hook.itid - 已知callchainid = 1, 查看当前内存变化调用堆栈
select * from native_hook_frame where callchain_id = 1 - 已知callchainid = 1, 查看当前内存变化调用堆栈对应的统计信息
select * from native_hook_statistic where callchain_id = 1
日志表与进程线程表关系图
log表记录日志信息。可以根据seq字段的连续性,来判断是否存在日志丢失的情况。

查询举例
- 已知tid = 123,查看当前线程的所有error级别的日志,可以使用如下SQL语句:
select * from log where tid = 123 and level = "error"
perf表之间关系图
- perf_report:此表记录Hiperf工具采集数据时的配置信息。
- perf_thread:此表记录hiperf采集到的进程和线程数据。
- perf_sample:此表中记录Hiperf工具的采样信息。id唯一表示一次采样记录,通过callchain_id与perf_callchain表中的callchain_id字段相关联。thread_id为线程号,与perf_thread表中的thread_id字段相关联。event_type_id为当前采样的事件类型id,与perf_report表中的id字段相关联。
- perf_callchain:此表格记录的是调用栈信息。
- Perf_files:此表格主要存放着获取到的函数符号表和文件信息。file_id唯一表示一个文件,与perf_callchain表中的file_id字段相关联。

查询举例
-
已知同步后的时间戳为28463134340470,查询采样数据
select * from perf_sample where timestamp_trace = 28463134340470 -
已知同步后的时间戳为28463134340470,查询采样数据对应的的调用栈信息
select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and A.callchain_id = B.callchain_id -
已知同步后的时间戳为28463134277762,查询采样数据的函数名及文件路径
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.callchain_id = A.callchain_id and B.callchain_id = 0 and B.file_id = C.file_id and C.serial_id = 0 -
已知线程号为6700,查询所有的采样记录
select * from perf_sample where thread_id = 6700 -
已知进程号为7863,查询所有的采样记录
select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = B.thread_id -
查询所有采样对应的事件类型
select A.*, B.report_value from perf_sample as A, perf_report as B where A.event_type_id = B.id
帧渲染表之间的关系图
frame_slice: 记录RS(RenderService)和应用的帧渲染。
gpu_slice: 记录RS的帧对应的gpu渲染时长。
frame_maps:记录应用到RS的帧的映射关系。

查询示例
-
已知进程,查询进程对应的实际渲染帧
select * from frame_slice where ipid = 1 -
已知进程的实际渲染帧的dst为12,求其对应的RS进程的渲染帧
select * from frame_slice where id = 12 -
已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长
select * from gpu_slice where frame_row = 14
JS内存数据表关系图
js_heap_files:记录js内存数据的文件名和文件索引

js_heap_nodes:记录js内存类对象数据
js_heap_edges:记录js内存类对象的成员数据
js_heap_trace_node:记录timeline的调用栈信息
js_heap_sample:记录timeline的时间轴信息

TraceStreamer输出数据库表格详细介绍
app_name表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| app_name | INT |
| app_key | INT |
表描述
记录HiSysevent上报事件中的IDE相关事件中APPNAME的表关联信息。
字段详细描述
- id:用于与表hisys_event_measure表中的key_id字段做对应
- app_name:对应的事件的信息ID
- app_key:对应的事件的APPNAME字段的信息ID
args表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| key | INT |
| datatype | INT |
| value | INT |
| argset | INT |
表描述
记录方法的参数集合。
字段详细描述
- id: 唯一标识
- key:键
- datatype:数据类型
- value:取值
- argset:参数集合
bio_latency_sample表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| type | INT |
| ipid | INT |
| itid | INT |
| start_ts | INT |
| end_ts | INT |
| latency_dur | INT |
| tier | INT |
| size | INT |
| block_number | TEXT |
| path | TEXT |
| dur_per_4k | INT |
表描述
记录IO操作相关方法调用,及调用栈数据。
字段详细描述
- id: 唯一标识
- callchain_id:调用栈的唯一标识。与ebpf_callstack表中callchain_id字段关联
- type:事件类型其取值为枚举类型(DATA_READ,DATA_WRITE,METADATA_READ,METADATA_WRITE,PAGE_IN,PAGE_OUT)
- ipid:TS内部进程号
- itid:TS内部线程号
- start_ts:开始时间
- end_ts:结束时间
- latency_dur:总延迟
- tier:优先级
- size:文件大小
- block_number:数据量大小(一般为4K)
- path:路径id
- dur_per_4k:每4k数据的平均延迟
callstack表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| dur | INT |
| callid | INT |
| cat | TEXT |
| name | TEXT |
| depth | INT |
| cookie | INT |
| parent_id | INT |
| argsetid | INT |
| chainId | TEXT |
| spanId | TEXT |
| parentSpanId | TEXT |
| flag | TEXT |
| trace_level | TEXT |
| trace_tag | TEXT |
| custom_category | TEXT |
| custom_args | TEXT |
| child_callid | INT |
表描述
记录调用堆栈和异步调用信息,其中depth仅在非异步的调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,child_callid为子线程唯一号。
字段详细描述
- id: 唯一标识
- ts: 数据事件上报时间戳
- dur:调用时长
- callid:调用者的ID,比如针对线程表里面的id
- cat: 表示当前栈帧属于哪个业务(binder/workqueue/null)
- name:调用名称
- depth:调用深度
- cookie: 异步调用的cookie值
- parent_id:父调用的id
- argsetid: 调用的参数列表,关联args表的id字段
- chainId:分布式数据中的chainId,id相同则表示为同一个分布式的调用栈
- spanId:分布式调用关联关系,当前帧的id
- parentSpanId: 分布式调用关联关系,当前帧的parent的SpanId,对应当前表的spandId
- flag:C表示分布式调用发送方,S表示接受方
- trace_level:决定trace的等级,log和nolog等级不同,其中log表示详细记录所有相关的调用信息,nolog 表示不记录
- trace_tag:Tag标签,标识请求的来源或类型
- custom_category:聚合标签,用于关联同类信息
- custom_args:自定义参数,用于存储与调用相关的额外信息
- child_callid:当为异步调用,此时callid为进程唯一号,child_callid为子线程唯一号,反之为无效值
clk_event_filter表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| type | TEXT |
| name | TEXT |
| cpu | INT |
表描述
记录时钟信息。
字段详细描述
- id: 与measure表的filterId字段关联
- type:时钟事件类型
- name:时钟事件名称
- cpu: cpu编号
clock_event_filter表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| type | TEXT |
| name | TEXT |
| cpu | INT |
表描述
此结构用来维护时钟事件,cpu与唯一的ID做关联。
主要字段描述
- id: 与measure表的filterId字段关联
- Type:时钟事件类型
- Name:时钟事件名称
- cpu: cpu编号
cpu_measure_filter表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| name | TEXT |
| cpu | INT |
表描述
将cpu号作为key1,cpu的频率,空闲等状态作为key2,唯一确定一个filter_id。
主要字段描述
- id: 与measure表的filterId字段关联
- name: 事件名(cpu_idle/cpu_frequency/cpu_frequency_limits_max/cpu_frequency_limits_min)
- cpu:cpu号
cpu_usage表
表结构
| Columns Name | SQL TYPE |
|---|---|
| ts | INT |
| dur | INT |
| total_load | REAL |
| user_load | REAL |
| system_load | REAL |
| process_num | INT |
表描述
记录了/proc/pid/stat与CPU使用率相关的数据。
主要字段描述
- ts: 数据上报时间
- dur: 持续时间
- total_load:总负荷
- user_load:用户负载
- system_load:系统负载
- process_num:线程数
data_dict表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| data | TEXT |
表描述
此表记录了一个数据类型ID和字符串的映射。
主要字段描述
- id:索引值
- data:字符串
data_type表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| typeId | INT |
| desc | TEXT |
表描述
此表记录了一个数据类型ID和数据描述的映射。
主要字段描述
- id: 唯一标识
- typeId::数据类型id
- Desc:数据类型描述
diskio表
表结构
| Columns Name | SQL TYPE |
|---|---|
| ts | INT |
| dur | INT |
| rd | INT |
| wr | INT |
| rd_speed | REAL |
| wr_speed | REAL |
| rd_count | INT |
| wr_count | INT |
| rd_count_speed | REAL |
| wr_count_speed | REAL |
表描述
记录了与磁盘读写相关的数据。
主要字段描述
- ts:时间戳
- dur: 持续时间
- rd: 当前时间段的读取量
- wr: 当前时间段的写入量
- rd_speed:当前时间段的读取速度
- wr_speed:当前时间段的写入速度
- rd_count:读取的数据总量
- wr_count:写入的数据总量
- rd_count_speed:读数据的平均速度
- wr_count_speed:写入数据的平均速度
ebpf_callstack表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| depth | TEXT |
| ip | TEXT |
| symbols_id | INT |
| file_path_id | INT |
表描述
记录了与磁盘读写相关的数据。
主要字段描述
- id: 唯一标识
- callchain_id:调用栈的唯一标识
- depth:调用栈深度。取值为零时表示栈顶
- ip:调用栈ip
- symbols_id:调用栈函数名称, 与data_dict中的id字段关联
- file_path_id:调用栈函数所属文件路径, 与data_dict中的id字段关联
file_system_sample表
表结构
| Columns Name | SQL TYPE |
|---|---|
| callchain_id | INT |
| type | INT |
| ipid | INT |
| itid | INT |
| start_ts | INT |
| end_ts | INT |
| dur | INT |
| return_value | TEXT |
| error_code | TEXT |
| fd | INT |
| file_id | INT |
| size | INT |
| first_argument | TEXT |
| second_argument | TEXT |
| third_argument | TEXT |
| fourth_argument | TEXT |
表描述
记录了调用栈的相关信息。
主要字段描述
- callchain_id:调用栈信息ID与file_system_callstack表中call_chain_id字段相关联
- type:对应文件操作open,close,read,write
- ipid:样本所属的内部进程ID,关联process表id
- itid: 样本所属的内部线程ID,关联thread表id
- start_ts:开始时间
- end_ts:结束时间
- dur:耗时
- return_value:文件操作的返回值
- error_code:文件操作发生错误时的错误码
- fd:文件描述符fd
- file_id:当type为open,close时为其操作的文件路径,当type为read,write时为固定字段(null)
- size:在type为read,write时对应的文件的读或者写的大小
- first_argument:参数一
- second_argument:参数二
- third_argument:参数三
- fourth_argument:参数四
hidump表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| fps | INT |
表描述
此表记录了设备的帧率信息,fps。
相关字段描述
- id: 唯一标识
- ts: 数据上报时间戳
- fps:帧率值
hisys_event_measure表
表结构
| Columns Name | SQL TYPE |
|---|---|
| serial | INT |
| ts | INT |
| name_id | INT |
| key_id | INT |
| type | INT |
| int_value | REAL |
| string_value | TEXT |
表描述
记录所有的system event事件的相关数据,及其相关表的映射信息。
相关字段描述
- serial:每条数据过来携带唯一一条id作为标识
- ts: 数据上报时间戳
- name_id:存放事件对应的ID,与data_dict表相关联可以取出对应的字段
- key_id:存放事件包含的字段的ID,与表app_name的id字段相关联,找到app_name表的 id字段对应行的app_key字段与表data_dict表相关联取出对应的字段
- type:存放事件所包含的字段的值所属的类型为int型还是string(0为int,1为string)
- int_value:存放本事件所包含的字段的int型的值
- string_value:存放本事件所包含的字段的string型的值
instant表
表结构
| Columns Name | SQL TYPE |
|---|---|
| ts | INT |
| name | TEXT |
| ref | INT |
| wakeup_from | INT |
| ref_type | TEXT |
| value | REAL |
表描述
记录了系统中的waking和wakeup事件。
字段描述
- ts:唤醒时间
- name:唤醒事件的名称
- ref:索引号
- wakeup_from:唤醒当前线程的内部线程号(itid)
- ref_type:描述了value字段的类型(一般取值为itid)
- value:一般为当前线程的内部线程号取值
irq表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| dur | INT |
| callid | INT |
| cat | TEXT |
| name | TEXT |
| depth | INT |
| cookie | INT |
| parent_id | INT |
| argsetid | INT |
| flag | TEXT |
表描述
记录中断相关事件。
相关字段描述
- id: 唯一标识
- ts: 数据上报时间戳
- dur:调用中断时长
- callid:调用中断者的ID,比如针对线程表里面的id
- cat:调用栈数据类型(取值范围:irq,softirq, ipi)
- name:调用中断的名称
- depth:中断调用的深度
- cookie: 异步调用的cookie值
- parent_id:父调用中断的id
- argsetid: 跟arg_view中的argset关联,保存irq的名字以及值(irq=5 name=IPI)
- flag: 1表示硬中断
js_config表
表结构
| Columns Name | SQL TYPE |
|---|---|
| pid | INT |
| type | INT |
| interval | INT |
| capture_numeric_value | INT |
| trace_allocation | INT |
| enable_cpu_profiler | INT |
| cpu_profiler_interval | INT |
表描述
记录arkTs数据采集的相关配置。
相关字段描述
- pid:目标进程ID。
- type:JS数据类型,取值与枚举HeapType对应,0表示JS内存数据为snapshot类型,1表示JS内存数据为timeline类型,-1表示没有JS内存数据。
- interval:当type=0时生效,单位是秒,表示一次snapshot事件和下一次snapshot事件之间的间隔。
- capture_numeric_value:当type=0时生效,表示是否同时抓取numeric。
- track_allocation:当type=1时生效,表示是否抓取allocations。
- enable_cpu_profiler:表示是否存在cpuprofiler的数据。
- cpu_profiler_interval:表示cpuprofiler数据的采集间隔。
js_cpu_profiler_node表
表结构
| Columns Name | SQL TYPE |
|---|---|
| function_id | INT |
| function_index | INT |
| script_id | INT |
| url_index | INT |
| line_number | INT |
| column_number | INT |
| hit_count | INT |
| children | INT |
| parent_id | INT |
表描述
记录cpu profiler中node节点的数据。
相关字段描述
- function_id: 函数的ID号。
- function_index:函数名称在data_dict中的索引号。
- script_id:关联到的类对象所在文件的绝对路径ID。
- url_index:关联到的类对象所在文件的绝对路径名称在data_dict中的索引号。
- line_number:类对象所在文件的行号。
- column_number:类对象所在文件的列号。
- hit_count:采样次数。
- children:子节点的id号。
- parent_id:父节点的id号。
js_cpu_profiler_sample表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| function_id | INT |
| start_time | INT |
| end_time | INT |
| dur | INT |
表描述
记录了cpu profiler 中sample节点的数据。
相关字段描述
- id: ts内部ID号。
- function_id:函数的ID号。
- start_time:数据上报的起始时间。
- end_time:数据上报的终止时间。
- dur:数据上报的间隔时间。
js_heap_edges表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| edge_index | INT |
| type | INT |
| name_or_index | INT |
| to_node | INT |
| from_node_id | INT |
| to_node_id | INT |
表描述
记录js内存数据类对象对应的成员的信息。
相关字段描述
- file_id:文件ID
- edge_index:成员的索引号
- type:成员的类型,取值范围为js_heap_info表中的edge_types
- name_or_index:数据名称,取值为js_heap_string表中的下标索引
- to_node:此成员指向的类对象在nodes数组中的索引
- from_node_id:类对象ID,该类对象指向此成员数据
- to_node_id:此成员指向到的类对象nodes数组中的ID
js_heap_files表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| file_name | TEXT |
| start_time | INT |
| end_time | INT |
| self_size | INT |
表描述
记录了js内存数据的文件名称和时间。
相关字段描述
- id:文件ID
- file_name:文件名称
- start_time:数据抓取的起始时间
- end_time:数据抓取的终止时间
- self_size: 当前snapshot中所有node的size之和
js_heap_info表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| key | TEXT |
| type | INT |
| int_value | INT |
| str_value | TEXT |
表描述
记录了js内存数据类型,如nodes和edges的字段类型和数据总数。
相关字段描述
- file_id:文件ID
- key:类型名称
- type:数据类型索引
- int_value:int类型的数据值,如count类型数据
- str_value:string类型的数据值,如typename
js_heap_location表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| object_index | INT |
| script_id | INT |
| line | INT |
| column | INT |
表描述
记录了js内存location节点相关数据,此表目前无抓取到的数据。
相关字段描述
- file_id:文件ID
- object_index:与location关联的类对象的索引,取值为js_heap_nodes的下标索引
- script_id:关联到的类对象所在文件的绝对路径ID
- line:在类对象所在的文件中的行号
- column:在类对象所在的文件中的列号
js_heap_nodes表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| node_index | TEXT |
| type | INT |
| name | INT |
| id | TEXT |
| self_size | INT |
| edge_count | INT |
| trace_node_id | INT |
| detachedness | INT |
表描述
记录了js内存数据中类对象的数据。
相关字段描述
- file_id:文件ID
- node_index:类对象的索引
- type:类对象的类型
- name:类对象的名称
- id:类对象的唯一ID
- self_size:该类对象所有成员的大小(以字节为单位)
- edge_count:该类对象指向的类成员的个数
- trace_node_id:该类对象关联到js_heap_trace_node表中的调用栈ID
- detachedness:是否可以从window全局对象访问此节点,0表示是,1表示否
js_heap_sample表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| timestamp_us | INT |
| last_assigned_id | INT |
表描述
记录了timeline模式下的时间轴信息。
相关字段描述
- file_id:文件ID
- timestamp_us:时间信息
- last_assigned_id:当前时间点的id
js_heap_string表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| file_index | INT |
| string | TEXT |
表描述
记录了js内存数据中的字符串。
相关字段描述
- file_id:文件ID
- file_index:索引
- string:对应的字符串信息
js_heap_trace_function_info表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| function_index | INT |
| function_id | INT |
| name | INT |
| script_name | INT |
| script_id | INT |
| line | INT |
| column | INT |
表描述
记录了timeline模式下的调用栈的每个函数信息。
相关字段描述
- file_id:文件ID
- function_index:函数索引
- function_id:函数ID
- name:函数名称
- script_name:关联到的类对象所在文件的绝对路径名称
- script_id:关联到的类对象所在文件的绝对路径ID
- line:在类对象所在的文件中的行号
- column:在类对象所在的文件中的列号
js_heap_trace_node表
表结构
| Columns Name | SQL TYPE |
|---|---|
| file_id | INT |
| id | INT |
| function_info_index | INT |
| count | INT |
| size | INT |
| parent_id | INT |
表描述
记录了timeline模式下的调用栈的信息。
相关字段描述
- file_id:文件ID
- id:调用栈节点索引
- function_info_index:函数信息索引
- count:调用栈个数
- size:调用栈大小
- parent_id:调用栈父节点
app_startup表
表结构
| Columns Name | SQL TYPE |
|---|---|
| call_id | INT |
| ipid | INT |
| tid | INT |
| start_time | INT |
| end_time | INT |
| start_name | INT |
| packed_name | INT |
表描述
记录了应用启动的相关信息。
相关字段描述
- call_id:调用者的ID,比如针对线程表里面的id
- ipid:内部进程号
- tid:内部线程号
- start_time:阶段开始时间
- end_time:阶段结束时间
- start_name:阶段名称
- packed_name:应用名称
static_intialize表
表结构
| Columns Name | SQL TYPE |
|---|---|
| call_id | INT |
| ipid | INT |
| tid | INT |
| start_time | INT |
| end_time | INT |
| so_name | INT |
| depth | INT |
表描述
记录了so初始化的相关信息。
相关字段描述
- call_id:调用者的ID,比如针对线程表里面的id
- ipid:内部进程号
- tid:内部线程号
- start_time:阶段开始时间
- end_time:阶段结束时间
- so_name:so文件名称
- depth:泳道图的深度
live_process表
表结构
| Columns Name | SQL TYPE |
|---|---|
| ts | INT |
| dur | INT |
| cpu_time | INT |
| process_id | INT |
| process_name | TEXT |
| parent_process_id | INT |
| uid | INT |
| user_name | TEXT |
| cpu_usage | REAL |
| pss_info | INT |
| thread_num | INT |
| disk_writes | INT |
| disk_reads | INT |
表描述
记录了一些实时的进程中(/proc/PID/status、/proc/PID/status、/proc/PID/stat、/proc/stat)执行的一些数据(Monitor)。
主要字段描述
- ts: 数据上报时间戳
- dur: 事件持续时间
- cpu_time: /proc/$PID/stat 中的cpu时间
- process_id:进程id
- process_name:进程名
- parent_process_id:父进程的id
- uid:用户id
- user_name:用户名
- cpu_usage:cpu使用率
- pss_info:进程信息
- thread_num:线程数量
- disk_writes:磁盘写量
- disk_reads:磁盘读量
log表
表结构
| Columns Name | SQL TYPE |
|---|---|
| seq | INT |
| ts | INT |
| pid | INT |
| tid | INT |
| level | TEXT |
| tag | TEXT |
| context | TEXT |
| origints | INT |
表描述
记录日志信息。
关键字段描述
- seq:日志序号,保证日志解析的准确性
- ts:打印日志时间
- pid:日志的进程号
- tid:日志的线程号
- level:日志级别
- tag:日志标签
- context:日志内容
- origints:log中自带的时间
measure表
表结构
| Columns Name | SQL TYPE |
|---|---|
| type | TEXT |
| ts | INT |
| dur | INT |
| value | INT |
| filter_id | INT |
表描述
记录所有的计量值。
关键字段描述
- type:固定字段(measure)
- ts:事件时间
- dur:该值持续的时长
- value:数值
- filter_id:对应filter表中的ID
measure_filter表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| type | TEXT |
| name | TEXT |
| source_arg_set_id | INT |
表描述
记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录。
字段详细描述
过滤分类(type),过滤名称(key2),数据ID(key1)。
id: 唯一的filterId,与process_measure_filter, sys_event_filter中的id关联。
type:各种类型(cpu_measure_filter,clk_rate_filter,process_measure_filter...)
name: type的子类型。
source_arg_set_id: 同一个source_arg_set_id代表一组数据,一般取得是itid或者cpu编号。
meta表
表结构
| Columns Name | SQL TYPE |
|---|---|
| name | TEXT |
| value | TEXT |
表描述
此表记录了数据解析或导出时的一些现场数据,比如使用的TraceStreamer版本, 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。
主要字段描述
- Name:指定元数据的key
- Value:指定元数据的value
native_hook表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| ipid | INT |
| itid | INT |
| event_type | TEXT |
| sub_type_id | NUM |
| start_ts | INT |
| end_ts | INT |
| dur | INT |
| addr | INT |
| heap_size | INT |
| all_heap_size | INT |
| current_size_dur | INT |
| last_lib_id | INT |
| last_symbol_id | INT |
表描述
记录native_hook抓取的某个进程的堆内存,内存映射相关数据。
关键字段描述
- id: 唯一标识
- callChainId:唯一标识一条native_hook数据
- ipid:所属的进程内部id, 关联process表中的id
- itid:所属的线程内部id, 关联thread表中的id
- event_type:事件类型取值范围(AllocEvent,FreeEvent,MmapEvent, MunmapEvent)
- sub_type_id:子事件类型(只有event_type字段为MmapEvent时,该字段才会有值)
- start_ts:申请内存开始时间
- end_ts:释放内存时间
- dur:申请内存活跃时间
- addr:申请内存地址
- heap_size: 申请的内存大小
- all_heap_size:从采集数据开始到当前时刻,申请并活跃的内存总量。 event_type为AllocEvent或者FreeEvent时,表示活跃的堆内存总量。当event_type为MmapEvent或者MunmapEvent时,表示活跃的映射内存总量
- current_size_dur:表示当前活跃内存总量的持续时间
- last_lib_id:函数调用栈最后一个函数所属的文件路径,除了文件名中带musl和libc++
- last_symbol_id: 函数调用栈最后一个函数名,lib除了文件名中带musl和libc++
native_hook_frame表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| depth | INT |
| ip | INT |
| symbol_id | INT |
| file_id | INT |
| offset | INT |
| symbol_offset | INT |
| vaddr | INT |
表描述
记录了内存的申请和释放的堆栈。
相关字段描述
- id: 唯一标识
- callchain_id:标识一组调用堆栈
- depth:调用栈深度
- ip: 函数ip
- symbol_id:函数名id,对应data_dict中id
- file_id:函数所属文件id,对应data_dict中id
- offset: 取自Frame message的offset字段
- symbol_offset: 取自Frame message的symbol_offset字段
- vaddr: 一般取值为offset + symbol_offset
native_hook_statistic表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| ipid | INT |
| ts | INT |
| type | INT |
| sub_type_id | INT |
| apply_count | INT |
| release_count | INT |
| apply_size | INT |
| release_size | INT |
| last_lib_id | INT |
| last_symbol_id | INT |
表描述
该表记录了内存申请/释放的统计信息。
关键字段描述
- id: 唯一标识
- callchain_id:内存分配的回调链id
- ipid:进程id
- ts:统计数据上报时间
- type:事件类型,0代表malloc事件,1代表mmap事件
- sub_type_id:事件子类型,关联data_dict表id
- apply_count:当前调用栈内存分配总次数
- release_count:当前调用栈内存释放总次数
- apply_size:当前调用栈累计分配总大小
- release_size:当前调用栈累计释放总大小
- last_lib_id:函数调用栈最后一个函数所属的文件路径,除了文件名中带musl和libc++
- last_symbol_id: 函数调用栈最后一个函数名,lib除了文件名中带musl和libc++
network表
表结构
| Columns Name | SQL TYPE |
|---|---|
| ts | INT |
| dur | INT |
| tx | INT |
| rx | INT |
| tx_speed | REAL |
| rx_speed | REAL |
| packet_in | INT |
| packet_in_sec | REAL |
| packet_out | INT |
| packet_out_sec | REAL |
| net_type | TEXT |
表描述
记录了网络数据传输相关的信息。
主要字段描述
- ts:事件上报时间
- dur: 持续时间
- tx: 网络数据的写入次数
- rx: 网络数据的读取次数
- tx_speed: 网络数据的写入次数/s
- rx_speed: 网络数据的读取次数/s
- packet_in:网络数据申请的数据包个数
- packet_in_sec: 网络数据申请的数据包个数/s
- packet_out: 网络数据发送的数据包个数
- packet_out_sec:网络数据发送的数据包个数/s
- net_type:网络类型,wifi/蜂窝
paged_memory_sample表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| type | INT |
| ipid | INT |
| start_ts | INT |
| end_ts | INT |
| dur | INT |
| size | INT |
| addr | TEXT |
| itid | INT |
表描述
记录了网络数据传输相关的信息。
主要字段描述
- id: 唯一标识
- callchain_id: 取值相同的一组数据,表示一个完整的调用栈
- type:事件类型
- ipid:TS内部进程号
- start_ts:开始时间
- end_ts:结束时间
- dur:持续时间
- size:操作页数,1页=4kb
- addr: 内存地址
- itid:内部线程号
perf_callchain表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| depth | INT |
| ip | INT |
| vaddr_in_file | INT |
| file_id | INT |
| symbol_id | INT |
| name | TEXT |
表描述
记录了Hiperf采样数据的调用栈信息。
主要字段描述
- id: 唯一标识
- callchain_id:标识一组调用堆栈
- depth:调用栈深度
- ip: 函数ip
- vaddr_in_file:函数在文件中的虚拟地址
- file_id:与perf_files表中的file_id字段相关联
- symbol_id:与PerfFiles中的serial_id字段相关联
- name:函数名
perf_files表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| file_id | INT |
| serial_id | INT |
| symbol | TEXT |
| path | TEXT |
表描述
记录Hiperf工具采集到的函数符号表和文件名。
主要字段描述
- id: 唯一标识
- file_id:文件编号
- serial_id:一个文件中可能有多个函数,serial_id表示函数的编号
- symbol:函数名
- path:文件路径
perf_report表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| report_type | TEXT |
| report_value | TEXT |
表描述
记录Hiperf工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。
主要字段描述
- id: 唯一标识
- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令)
- report_value:对应类型的取值
perf_sample表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| callchain_id | INT |
| timestamp | INT |
| thread_id | INT |
| event_count | INT |
| event_type_id | INT |
| timestamp_trace | INT |
| cpu_id | INT |
| thread_state | TEXT |
表描述
记录Hiperf工具的采样信息。
主要字段描述
- id: 唯一标识
- callchain_id:关联perf_callchain表callchain_id
- timestamp:未进行时钟源同步的时间戳
- thread_id:线程号
- event_count:采样统计
- event_type_id:事件类型编号。与PerfReport表的id字段相关联
- timestamp_trace:时钟源同步后的时间戳
- cpu_id:cpu核编号
- thread_state:线程状态。采样对应Sched_Waking事件时,为Runing;对应Sched_Switch事件时,为Suspend。其余事件类型,为“-”
perf_thread表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| thread_id | INT |
| process_id | INT |
| thread_name | TEXT |
表描述
记录Hiperf工具采集到的进程和线程数据。
主要字段描述
- id: 唯一标识
- thread_id:线程号
- process_id:进程号
- thread_name:线程名
process表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ipid | INT |
| pid | INT |
| name | TEXT |
| start_ts | INT |
| switch_count | INT |
| thread_count | INT |
| slice_count | INT |
| mem_count | INT |
表描述
记录了进程相关数据。
关键字段描述
- id:进程在数据库重新重新定义的id,从0开始序列增长
- ipid:TS内部进程id
- pid:进程的真实id
- name:进程名字
- start_ts:开始时间
- switch_count:统计内部有多少个线程有切换
- thread_count:统计其线程个数
- slice_count:进程内有多少个线程有slice数据
- mem_count:进程是否有内存数据
process_measure表
表结构
| Columns Name | SQL TYPE |
|---|---|
| type | TEXT |
| ts | INT |
| dur | INT |
| value | NUM |
| filter_id | INT |
表描述
保存进程的内存,堆栈值等所有计量值信息。
字段详细描述
- type: 固定为measure
- ts:事件时间
- dur: 持续时间
- value:数值
- filter_id:对应process_measure_filter表中的id
process_measure_filter表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| name | TEXT |
| ipid | INT |
表描述
将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在measure_filter表中。
字段详细描述
- id: 与measure表的filterId字段相关联
- name:key名
- ipid:进程内部编号
raw表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| name | TEXT |
| cpu | INT |
| itid | INT |
表描述
记录了系统中的waking、wakup、cpu_idel、cpu_frequency数据。
相关字段描述
- id: 唯一标识
- ts:事件时间
- name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking)
- cpu:事件发生在哪个CPU
- itid:时间对应哪个itid,对应thread表中id
sched_slice表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| dur | INT |
| ts_end | INT |
| cpu | INT |
| itid | INT |
| ipid | INT |
| end_state | TEXT |
| priority | INT |
| arg_setid | INT |
表描述
此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录。
主要字段描述
- id: 唯一标识
- ts:事件发生时间
- dur:状态持续时长
- ts_end:状态结束时长
- cpu:事件发生在哪个cpu
- itid:进程内部编号
- ipid:进程内部编号
- end_state:线程的终结状态
- priority: 线程优先级
- argset_id:线程状态参数,对应args中argset
smaps表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| timestamp | INT |
| start_addr | TEXT |
| end_addr | TEXT |
| dirty | INT |
| swapper | INT |
| resident_size | INT |
| pss | INT |
| virtaul_size | INT |
| reside | REAL |
| protection_id | INT |
| path_id | INT |
| shared_clean | INT |
| shared_dirty | INT |
| private_clean | INT |
| private_dirty | INT |
| swap | INT |
| swap_pss | INT |
| type | INT |
表描述
记录进程的内存消耗的相关信息采样,读取/proc/${pid}/smaps节点。
主要字段描述
- id: 唯一标识
- timestamp:事件发生事件
- start_addr:内存段地址的起始位置
- end_addr:内存段地址的结束位置
- dirty:其他进程共享的被写的页的大小 + 已被改写的私有页面的大小
- swapper:存在于交换分区的数据大小
- resident_size:实际分配的内存大小
- pss:平摊计算后的实际物理使用内存
- virtaul_size:虚拟内存空间的大小
- reside:实际分配的内存大小与虚拟内存空间的大小的比
- protection_id:内存段的权限id与表data_dict的id字段相关联
- path_id:如果区域是从文件映射的,则这是文件的名称对应的id序号与表data_dict的id字段相关联
- shared_clean:smaps节点中Shared_clean
- shared_dirty:smaps节点中Shared_dirty
- private_clean:smaps节点中Private_clean
- private_dirty:samps节点中Private_dirty
- swap: smap节点中Swap
- swap_pss:smap节点中SwapPss
- type : 根据type分类信息
stat表
表结构
| Columns Name | SQL TYPE |
|---|---|
| event_name | TEXT |
| stat_type | TEXT |
| count | INT |
| serverity | TEXT |
| source | TEXT |
表描述
此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解。
主要字段描述
- event_name:数据类型
- stat_type:数据状态
- count:数据条数
- severity:严重级别
- source:数据来源
symbols表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| funcname | TEXT |
| addr | INT |
表描述
此表记录了被调用函数与其地址的映射关系。
相关字段描述
- id: 唯一标识
- funcname:系统调用名称
- addr:系统调用地址
syscall表
表结构
| Columns Name | SQL TYPE |
|---|---|
| syscall_num | INT |
| type | TEXT |
| ipid | INT |
| ts | INT |
| ret | INT |
表描述
记录用户空间函数与内核空间函数相互调用记录。
相关字段描述
- syscall_num:系统调用的序号
- type:固定取值:enter或者exit
- ipid:线程所属的进程ID
- ts:时间戳
- ret:返回值,在type为exit时有效
sys_event_filter表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| type | TEXT |
| name | TEXT |
表描述
记录所有的filter。
相关字段描述
- id: 与measure表的filterid字段关联
- type:文件类型
- name:文件名
sys_mem_measure表
表结构
| Columns Name | SQL TYPE |
|---|---|
| type | TEXT |
| ts | INT |
| dur | INT |
| value | INT |
| filter_id | INT |
表描述
记录系统内存与系统虚拟内存。
相关字段描述
- type: 固定为measure
- ts:事件时间
- dur: 持续时间
- value:数值
- filter_id:对应filter表中的ID
thread表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| itid | INT |
| tid | INT |
| name | TEXT |
| start_ts | INT |
| end_ts | INT |
| ipid | INT |
| is_main_thread | INT |
| switch_count | INT |
表描述
记录了线程相关数据。
字段详细描述
- id: 唯一标识
- itid:TS内部线程id
- tid:线程号
- name:线程名
- start_ts:开始时间
- end_ts:结束时间
- ipid:线程所属的进程id, 关联process表中的ID
- is_main_thread:是否主线程,主线程即该线程实际就是进程本身
- switch_count:当前线程的切换次数
thread_state表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| dur | INT |
| cpu | INT |
| itid | INT |
| tid | INT |
| pid | INT |
| state | TEXT |
| argset_id | INT |
表描述
记录了线程状态相关的数据。
字段详细描述
- id: 唯一标识
- ts:该线程状态的起始时间
- dur:该线程状态的持续时间
- cpu:该线程在哪个cpu上执行(针对running状态的线程)
- itid:该状态所属的线程id, 关联线程表中的id
- tid:线程号
- pid:进程号
- state:线程实际的的状态值
- argset_id:线程状态参数,对应args中arg_set
'R', Runnable状态
"S", interruptible sleep
"D", uninterruptible sleep
"D-IO", uninterruptible io
"D-NIO", uninterruptible nio
"Runing", Runing状态
"T", Task stoped.
"t" Traced.
"X", ExitedDead
"Z", Zombie
"P", Parked
"I", Task_Dead
"DK",
"DK-IO",
"DK-NIO",
"TK", TracedKill
"R+", WakeKill
"R+", TaskNew
"R-B", Task runnable binder.
clock_snapshot表
表结构
| Columns Name | SQL TYPE |
|---|---|
| clock_id | INT |
| ts | INT |
| clock_name | TEXT |
表描述
时钟号和时间,时钟名的映射表。
关键字段描述
- clock_id:时钟号
- ts:时钟快照报的时间
- clock_name:时钟号对应的时钟名字
时钟快照是用来对齐不同时钟号的时间 比如,时钟号1的时间100,和时钟号2的时间200对齐 则时钟号为2 的250,转换为时钟号1的时间后,为150
datasource_clockid表
表结构
| Columns Name | SQL TYPE |
|---|---|
| data_source_name | TEXT |
| clock_id | INT |
表描述
数据源和时钟号的映射表。
关键字段描述
- data_source_name:数据源的名称,和数据源的插件名保持一致
- clock_id:时钟号,对应clock_snapshot中的时钟号
这个表是用来告诉IDE,不同的事件源的事件,原始时钟号是多少,在数据库中保存的事件,通常是转换为boottime后的时间,但有些情况下,IDE仍然需要知道原始的时钟号是怎样的
frame_slice表
表结构
| Columns Name | SQL TYPE |
|---|---|
| ts | INT |
| vsync | INT |
| ipid | INT |
| itid | INT |
| callstack_id | INT |
| dur | INT |
| src | TEXT |
| dst | INT |
| type | INT |
| type_desc | TEXT |
| flag | INT |
| depth | INT |
| frame_no | INT |
表描述
应用的实际渲染帧和期望渲染帧的开始时间,持续时长,以及RenderService和App之间的关联关系。
关键字段描述
- ts: 数据上报时间戳
- vsync: 一个id值,用于标识一组渲染帧的期望和实际数据。
- ipid:所属的进程内部id, 关联process表中的id
- itid:所属的线程id, 关联thread表中的id
- callstack_id:该帧数据对应着callstack表的调用栈所在的行数
- dur:该帧渲染时长(当数据不完整时,改行数据为空)
- src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割
- dst:该帧对应的渲染帧是哪一行
- type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧
- type_desc: 当type值为0时,该字段为actural; 当type值为1时,该字段为expect;
- flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧(expectEndTime < actualEndTime为异常), 2 表示数据不需要绘制(没有frameNum信息),3 表示rs进程与app进程起止异常(|expRsStartTime - expUiEndTime| < 1ms 正常,否则异常。这里使用期待帧的时间差做判断,给实际帧打标签)
- depth:预留
- frame_no:预留
frame_maps表
表结构
| Columns Name | SQL TYPE |
|---|---|
| ts | INT |
| src_row | INT |
| dst_row | INT |
表描述
该表记录了app到RenderService的帧的映射关系,同frame_slice表中的src映射到dst的关系。
关键字段描述
- src_row:frame_slice表中app的帧所在的行
- dst_row:frame_slice表中RenderService的帧所在的行
gpu_slice表
表结构
| Columns Name | SQL TYPE |
|---|---|
| frame_row | INT |
| dur | INT |
表描述
该表记录了每一帧数据在GPU上的渲染时长。
关键字段描述
- frame_row:frame_slice表中渲染帧所在的行
- dur:帧渲染时长
trace_range表
表结构
| Columns Name | SQL TYPE |
|---|---|
| start_ts | INT |
| end_ts | INT |
表描述
该表记录了解析开始时间以及结束时间。
关键字段描述
- start_ts:trace的开始时间,纳秒为单位
- end_ts:trace的结束时间,纳秒为单位
task_pool表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| allocation_task_row | INT |
| execute_task_row | INT |
| return_task_row | INT |
| allocation_itid | INT |
| execute_itid | INT |
| return_itid | INT |
| task_id | INT |
| priority | INT |
| execute_state | INT |
| return_state | INT |
| timeout_row | INT |
表描述
该表记录了任务池相关数据,与callstack表关联。
关键字段描述
- id: 唯一标识
- allocation_task_row:与callstack表id号相关联
- execute_task_row:与callstack表id号相关联
- return_task_row:与callstack表id号相关联
- allocation_itid:任务分发的itid
- execute_itid:任务执行的itid
- return_itid:任务返回的itid
- task_id:任务执行id
- priority:任务分发独有的,优先级{HIGH : 0,MEDIUM : 1,LOW : 2}
- execute_state:任务执行独有的执行状态{NOT_FOUND : 0,WAITING : 1,RUNNING : 2,CANCELED : 3}
- return_state:任务返回独有的任务返回状态[IsCanceled DeserializeFailed Successful Unsuccessful]
- timeout_row:任务执行超时时更新此列,将对应的 callstack 表行号存于对应的任务行
animation表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| input_time | INT |
| start_point | INT |
| end_point | INT |
| frame_info | TEXT |
| name | TEXT |
表描述
该表记录动效的响应时延和完成时延等信息。
关键字段描述
- id: 唯一标识
- input_time:输入时间点
- start_point:开始时间点
- end_point:结束时间点
- frame_info:动效帧信息,格式:
实际帧个数:实际帧帧率 - name: 当前动效名,eg:
H:APP_LIST_FLING, com.taobao.taobao
dynamic_frame表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| x | INT |
| y | INT |
| width | INT |
| height | INT |
| alpha | TEXT |
| name | INT |
| end_time | INT |
表描述
该表记录动效帧的坐标、分辨率、结束时间等信息。
关键字段描述
- id: 唯一标识
- x:坐标x
- y:坐标y
- width:宽
- height:高
- alpha:透明度
- name:当前动效帧名字
- end_time:结束时间
device_info表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| physical_width | INT |
| physical_height | INT |
| physical_frame_rate | INT |
表描述
该表记录设备分辨率和帧率等信息。
关键字段描述
- id: 唯一标识
- physical_width:设备宽
- physical_height:设备高
- physical_frame_rate:设备帧率
device_state表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| brightness | INT |
| bt_state | INT |
| location | INT |
| wifi | INT |
| stream_default | INT |
| voice_call | INT |
| music | INT |
| stream_ring | INT |
| media | INT |
| voice_assistant | INT |
| system | INT |
| alarm | INT |
| notification | INT |
| bt_sco | INT |
| enforced_audible | INT |
| stream_dtmf | INT |
| stream_tts | INT |
| accessibility | INT |
| recording | INT |
| stream_all | INT |
表描述
该表记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息。该表目前暂未被使用。
关键字段描述
- id: 唯一标识
- brightness:屏幕亮度
- bt_state:蓝牙状态
- location:位置信息
- wifi:无线网络状态
- stream_default: 取自AudioVolumeInfo message的stream_default字段。
- voice_call:语音通话
- music:音乐播放
- stream_ring: 取自AudioVolumeInfo message的stream_ring字段。
- media:多媒体
- voice_assistant:语音助手
- system:系统
- alarm:闹钟
- notification:消息通知
- bt_sco:蓝牙语音
- enforced_audible: 取自AudioVolumeInfo message的enforced_audible字段
- stream_dtmf: 取自AudioVolumeInfo message的stream_dtmf字段
- stream_tts: 取自AudioVolumeInfo message的stream_tts字段
- accessibility:访问权限
- recording:录音
- stream_all: 取自AudioVolumeInfo message的stream_all字段
trace_config表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| trace_source | INT |
| key | INT |
| value | INT |
表描述
该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。
关键字段描述
- id: 唯一标识
- trace_source:事件源
- key:事件需要关注的信息名
- value:事件需要关注的信息名对应的信息值
memory_ashmem表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| ipid | INT |
| adj | INT |
| fd | INT |
| ashmem_name_id | INT |
| size | INT |
| pss | INT |
| ashmem_id | INT |
| time | INT |
| ref_count | INT |
| purged | INT |
| flag | INT |
表描述
该表记录trace数据源/proc/purgeable_ashmem_trigger,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。
关键字段描述
- id: 唯一标识
- ts:时间戳
- ipid:内部进程号
- adj: purgeable_ashmem_trigger中adj
- fd:共享内存文件描述符
- ashmem_name_id:共享内存名
- size:共享内存大小
- pss:PSS内存大小
- ashmem_id:共享内存ID
- time: purgeable_ashmem_trigger中time
- ref_count:引用计数
- purged: purgeable_ashmem_trigger中purged
- flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据
memory_dma表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| ipid | INT |
| fd | INT |
| size | INT |
| ino | INT |
| exp_pid | INT |
| exp_task_comm_id | INT |
| buf_name_id | INT |
| exp_name_id | INT |
| flag | INT |
表描述
该表记录trace数据源取/proc/process_dmabuf_info节点,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。
关键字段描述
- id: 唯一标识
- ts:时间戳
- ipid:内部进程号
- fd:dma内存文件描述符
- size:dma内存大小
- ino: process_dmabuf_info中ino列
- exp_pid:申请者的进程号
- exp_task_comm_id:申请者的的线程名,对应data_dict的id
- buf_name_id:dma内存名
- exp_name_id:申请者进程名
- flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据
memory_process_gpu表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| gpu_name_id | INT |
| all_gpu_size | INT |
| addr | TEXT |
| ipid | INT |
| itid | INT |
| used_gpu_size | INT |
表描述
该表记录trace数据源读取/proc/gpu_memory节点
关键字段描述
- id: 唯一标识
- ts:时间戳
- gpu_name_id:gpu内存名称
- all_gpu_size:进程占用gpu总大小
- addr:gpu内存地址
- ipid:内部进程号
- itid:内部线程号
- used_gpu_size:已使用的gpu大小
memory_window_gpu表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| window_name_id | INT |
| window_id | INT |
| module_name_id | INT |
| category_name_id | INT |
| size | INT |
| count | INT |
| purgeable_size | INT |
| ipid | INT |
表描述
该表记录trace数据源/sys/kernel/debug/mali0/ctx/$(pidof xxx)_0/mem_profile
关键字段描述
- id: 唯一标识
- ts:时间戳
- window_name_id:窗口名
- window_id:窗口id
- module_name_id:模块名
- category_name_id:目录名
- size:内存大小 bytes
- count:内存申请个数
- purgeable_size: 取Total memory对应的字节大小
- ipid: 内部进程号
static_initalize表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ipid | INT |
| tid | INT |
| call_id | INT |
| start_time | INT |
| end_time | INT |
| so_name | TEXT |
| depth | INT |
表描述
该表记录了so初始化相关数据。
关键字段描述
- id: 唯一标识
- ipid:内部进程号
- tid:内部线程号
- call_id:调用者的ID,对应线程表里面的itid
- start_time:阶段开始时间
- end_time:阶段结束时间
- so_name:so文件名称
- depth:泳道图的深度
memory_cpu表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| total_size | INT |
表描述
该表记录了hidumper抓取的cpu的内存大小的相关数据。
关键字段描述
- id: 唯一标识
- ts:数据上报时间戳
- total_size:hidumper取到的cpu内存大小
memory_profile表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| channel_id | INT |
| total_size | INT |
表描述
该表记录了读取/sys/kernel/debug/mali0/ctx/$(pidof xxx)_0/mem_profile节点相关数据。
关键字段描述
- id: 唯一标识
- ts:数据上报时间戳
- channel_id: 取Channel对应的名称,对应data_dict的id
- total_size:取Total memory对应的字节大小
memory_rs_image表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| ts | INT |
| ipid | INT |
| mem_size | INT |
| type_id | INT |
| surface_name_id | INT |
表描述
该表记录了hidumper抓取的界面的内存大小的相关数据。
关键字段描述
- id: 唯一标识
- ts:数据上报时间戳
- ipid:内部进程号
- mem_size: 取hidumper的size列
- type_id:取hidumper的type列,对于data_dict表中的id
- surface_name_id: 取hidumper的surfaceName列
hisys_all_event表
表结构
| Columns Name | SQL TYPE |
|---|---|
| id | INT |
| domain_id | INT |
| event_name_id | INT |
| ts | INT |
| type | INT |
| time_zone | TEXT |
| pid | INT |
| tid | INT |
| uid | INT |
| level | TEXT |
| tag | TEXT |
| event_id | INT |
| seq | INT |
| info | TEXT |
| contents | TEXT |
表描述
该表记录所有hisysevent采集到的原始数据。
关键字段描述
- id: 唯一标识一条该表数据
- domain_id: 对应原始数据中的domain_字段在data_dict表中的索引。
- event_name_id: 对应原始数据中name_字段在data_dict表中的索引。
- ts: 对应原始数据中time_(ms)字段转化成ns
- type: 对应原始数据中type_字段
- time_zone: 对应原始数据中tz_字段
- pid: 进程号,对应原始数据中的pid_
- tid: 线程号, 对应原始数据中tid_
- uid: 对应原始数据中uid_
- level: 对应原始数据中level_
- tag: 对应原始数据中tag_
- event_id: 对应原始数据id_
- seq: 对应原始数据中seq_
- info: 对应原数据中info_字段
- contents: 取源数据中除了以上字段外的其他字段,组成新的json数据。