本文介绍日志服务性能监控数据的格式。
字段 | 类型 | 说明 | 示例 |
aggTypes | String | 聚合方式。 | sum |
dataType | String | 数据格式。 | CallStack |
durationNs | Long | 一次Profile过程持续的时间。单位:纳秒。 | 10000000000 |
labels | JSON | 标签信息。 | {"instance" : "10.10.10.10", "region" : "cn-hangzhou"} |
language | String | 语言类型。 | go |
name | String | 栈顶名,精确到函数名。 | runtime.allocm /usr/local/go/src/runtime/proc.go |
profileID | String | 此次Profile生成的UUID。 | 517f3500-21ec-4536-9b5b-49e6b689f9ac |
stack | String | 调用关系,从栈第二层到栈底。 | runtime.newm /usr/local/go/src/runtime/proc.go runtime.startm /usr/local/go/src/runtime/proc.go runtime.handoffp /usr/local/go/src/runtime/proc.go runtime.stoplockedm /usr/local/go/src/runtime/proc.go runtime.schedule /usr/local/go/src/runtime/proc.go runtime.goschedImpl /usr/local/go/src/runtime/proc.go runtime.gopreempt_m /usr/local/go/src/runtime/proc.go runtime.newstack /usr/local/go/src/runtime/stack.go runtime.morestack /usr/local/go/src/runtime/asm_amd64.s |
stackID | String | 标识唯一的调用栈,可用于统计不同调用栈方法的执行时间。 | 52431d987afe6f53 |
type | String | Profile类型。 | profile_mem |
units | String | 值的单位。 | bytes |
val | Double | 函数自身占用值。 | 10000000.00 |
valueTypes | String | 值的类型。 | cpu |
其中,Profile类型、值的类型、值的单位之间的对应关系如下表所示。
Profile类型 | 属性 | 单位 | 含义 |
profile_cpu | cpu | nanoseconds | CPU执行耗时 |
profile_cpu | wall | nanoseconds | 实际执行耗时。 |
profile_cpu | itimer | nanoseconds | 类似CPU执行耗时。 |
profile_mem | alloc_space | bytes | 内存分配总空间。 |
profile_mem | alloc_objects | count | 内存分配总数量。 |
profile_mem | inuse_space | bytes | 内存使用总空间。 |
profile_mem | inuse_objects | count | 内存使用总数量。 |
profile_mem | alloc_in_new_tlab_bytes | bytes | 创建新TLAB内对象空间。 |
profile_mem | alloc_in_new_tlab_objects | count | 创建新TLAB内对象大小。 |
profile_mem | alloc_outside_tlab_bytes | bytes | 创建新TLAB外对象空间。 |
profile_mem | alloc_outside_tlab_objects | count | 创建新TLAB外对象大小。 |
profile_goroutines | goroutines | count | Goroutine数量。 |
profile_mutex | block_count | count | 锁定次数。 |
profile_mutex | block_duration | nanoseconds | 锁定时间。 |
CPU:CPU执行代码块所花费的时间。通过函数的CPU时间,您可知CPU忙于执行指令的时长。该时间不包括CPU等待的时间或处理其他程序的指令的时间。
Wall:实际用时,即运行代码块所需的时间。函数的挂钟时间用于测量函数从进入到退出所经过的时间。挂钟时间包括所有等待时间、锁定和线程同步时间。代码块的实际用时不会短于CPU时间。
itimer:itimer模式基于setitimer(ITIMER_PROF) 系统进行调用。理想情况下,它在进程消耗每个给定的CPU时间间隔内生成一个指标。