性能監(jiān)控?cái)?shù)據(jù)格式
本文介紹日志服務(wù)性能監(jiān)控?cái)?shù)據(jù)的格式。
字段 | 類(lèi)型 | 說(shuō)明 | 示例 |
aggTypes | String | 聚合方式。 | sum |
dataType | String | 數(shù)據(jù)格式。 | CallStack |
durationNs | Long | 一次Profile過(guò)程持續(xù)的時(shí)間。單位:納秒。 | 10000000000 |
labels | JSON | 標(biāo)簽信息。 | {"instance" : "10.10.10.10", "region" : "cn-hangzhou"} |
language | String | 語(yǔ)言類(lèi)型。 | go |
name | String | 棧頂名,精確到函數(shù)名。 | runtime.allocm /usr/local/go/src/runtime/proc.go |
profileID | String | 此次Profile生成的UUID。 | 517f3500-21ec-4536-9b5b-49e6b689f9ac |
stack | String | 調(diào)用關(guān)系,從棧第二層到棧底。 | 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 | 標(biāo)識(shí)唯一的調(diào)用棧,可用于統(tǒng)計(jì)不同調(diào)用棧方法的執(zhí)行時(shí)間。 | 52431d987afe6f53 |
type | String | Profile類(lèi)型。 | profile_mem |
units | String | 值的單位。 | bytes |
val | Double | 函數(shù)自身占用值。 | 10000000.00 |
valueTypes | String | 值的類(lèi)型。 | cpu |
其中,Profile類(lèi)型、值的類(lèi)型、值的單位之間的對(duì)應(yīng)關(guān)系如下表所示。
Profile類(lèi)型 | 屬性 | 單位 | 含義 |
profile_cpu | cpu | nanoseconds | CPU執(zhí)行耗時(shí) |
profile_cpu | wall | nanoseconds | 實(shí)際執(zhí)行耗時(shí)。 |
profile_cpu | itimer | nanoseconds | 類(lèi)似CPU執(zhí)行耗時(shí)。 |
profile_mem | alloc_space | bytes | 內(nèi)存分配總空間。 |
profile_mem | alloc_objects | count | 內(nèi)存分配總數(shù)量。 |
profile_mem | inuse_space | bytes | 內(nèi)存使用總空間。 |
profile_mem | inuse_objects | count | 內(nèi)存使用總數(shù)量。 |
profile_mem | alloc_in_new_tlab_bytes | bytes | 創(chuàng)建新TLAB內(nèi)對(duì)象空間。 |
profile_mem | alloc_in_new_tlab_objects | count | 創(chuàng)建新TLAB內(nèi)對(duì)象大小。 |
profile_mem | alloc_outside_tlab_bytes | bytes | 創(chuàng)建新TLAB外對(duì)象空間。 |
profile_mem | alloc_outside_tlab_objects | count | 創(chuàng)建新TLAB外對(duì)象大小。 |
profile_goroutines | goroutines | count | Goroutine數(shù)量。 |
profile_mutex | block_count | count | 鎖定次數(shù)。 |
profile_mutex | block_duration | nanoseconds | 鎖定時(shí)間。 |
CPU:CPU執(zhí)行代碼塊所花費(fèi)的時(shí)間。通過(guò)函數(shù)的CPU時(shí)間,您可知CPU忙于執(zhí)行指令的時(shí)長(zhǎng)。該時(shí)間不包括CPU等待的時(shí)間或處理其他程序的指令的時(shí)間。
Wall:實(shí)際用時(shí),即運(yùn)行代碼塊所需的時(shí)間。函數(shù)的掛鐘時(shí)間用于測(cè)量函數(shù)從進(jìn)入到退出所經(jīng)過(guò)的時(shí)間。掛鐘時(shí)間包括所有等待時(shí)間、鎖定和線程同步時(shí)間。代碼塊的實(shí)際用時(shí)不會(huì)短于CPU時(shí)間。
itimer:itimer模式基于setitimer(ITIMER_PROF) 系統(tǒng)進(jìn)行調(diào)用。理想情況下,它在進(jìn)程消耗每個(gè)給定的CPU時(shí)間間隔內(nèi)生成一個(gè)指標(biāo)。