## TS解析htrace数据时间戳的规则 ProfilerPluginData是所有proto格式数据插件的最外层message。 其中包含多个时间戳。根据name字段反序列化的data字段中包含一个时间戳,一般为具体事件发生的时刻;另外tv_sec, tv_nsec号数据域组成最外层的时间戳,一般为端侧使用该插件采集数据上报的时刻。 在一些需要精确展示事件时间的业务中, 采用的是data中的时间; 在一些周期性采集统计数据的业务(如:进程的内存数据)中使用的是最外层tv_sec, tv_nsec. message ProfilerPluginData { string name = 1; uint32 status = 2; bytes data = 3; enum ClockId { CLOCKID_REALTIME = 0; CLOCKID_REALTIME_ALARM = 1; // since Linux 3.0; Linux-specific CLOCKID_REALTIME_COARSE = 2; // since Linux 2.6.32; Linux-specific CLOCKID_TAI = 3; // since Linux 3.10; Linux-specific CLOCKID_MONOTONIC = 4; CLOCKID_MONOTONIC_COARSE = 5; // since Linux 2.6.32; Linux-specific CLOCKID_MONOTONIC_RAW = 6; // since Linux 2.6.28; Linux-specific CLOCKID_BOOTTIME = 7; // since Linux 2.6.39; Linux-specific CLOCKID_BOOTTIME_ALARM = 8; // since Linux 3.0; Linux-specific CLOCKID_PROCESS_CPUTIME_ID = 9; // since Linux 2.6.12 CLOCKID_THREAD_CPUTIME_ID = 10; // since Linux 2.6.12 }; ClockId clock_id = 4; uint64 tv_sec = 5; uint64 tv_nsec = 6; string version = 7; // "1.01" } ## 解析不同插件数据使用的时间戳对照表
对应的插件 | 对应的业务说明 | |
使用ProfilerPluginData.data中的时间戳 | ftrace-plugin | ftrace |
hilog-plugin | hilog日志 | |
nativehook | native_memory(malloc, free, mmap,munmap, 统计事件) | |
hidump-plugin | fps | |
使用ProfilerPluginData.tv_sec 和tv_nsec/td> | memory-plugin | 系统内存 |
network-plugin | 网络 | |
cpu-plugin | cpu占用率 | |
process-plugin | 进程内存 | |
diskio-plugin | 磁盘读写速率 | |
hisysevent-plugin | hisysevent |