性能监控数据格式

本文介绍日志服务性能监控数据的格式。

字段

类型

说明

示例

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时间间隔内生成一个指标。