This topic describes the format of performance monitoring data in Simple Log Service.
Field | Type | Description | Example |
aggTypes | String | The method that is used to aggregate data. | sum |
dataType | String | The data format. | CallStack |
durationNs | Long | The duration that is used to generate the profile. Unit: nanoseconds. | 10000000000 |
labels | JSON | The tag information. | {"instance" : "10.10.10.10", "region" : "cn-hangzhou"} |
language | String | The language type. | go |
name | String | The stack top name that is accurate to the function name. | runtime.allocm /usr/local/go/src/runtime/proc.go |
profileID | String | The UUID of the current profile. | 517f3500-21ec-4536-9b5b-49e6b689f9ac |
stack | String | The call relationship from the second layer of the stack to the stack bottom. | 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 | The unique identifier of the call stack. The ID can be used to query statistics on the execution time of different stack call methods. | 52431d987afe6f53 |
type | String | The profile type. | profile_mem |
units | String | The value unit. | bytes |
val | Double | The size of the memory that is occupied by the function. | 10000000.00 |
valueTypes | String | The value type. | cpu |
The following table describes the mappings among the profile type, value type, and value unit.
Profile type | Value type | Value unit | Description |
profile_cpu | cpu | nanoseconds | The CPU execution duration. |
profile_cpu | wall | nanoseconds | The actual execution duration. |
profile_cpu | itimer | nanoseconds | Similar to the CPU execution duration. |
profile_mem | alloc_space | bytes | The size of allocated memory. |
profile_mem | alloc_objects | count | The number of objects to which the memory is allocated. |
profile_mem | inuse_space | bytes | The size of used memory. |
profile_mem | inuse_objects | count | The number of objects that use memory. |
profile_mem | alloc_in_new_tlab_bytes | bytes | The size of memory that is allocated to the objects in the new Thread Local Allocation Buffer (TLAB). |
profile_mem | alloc_in_new_tlab_objects | count | The number of objects in the new TLAB. |
profile_mem | alloc_outside_tlab_bytes | bytes | The size of memory that is allocated to the objects outside the new TLAB. |
profile_mem | alloc_outside_tlab_objects | count | The number of objects outside the new TLAB. |
profile_goroutines | goroutines | count | The number of goroutines. |
profile_mutex | block_count | count | The number of locks. |
profile_mutex | block_duration | nanoseconds | The lock duration. |
CPU: The CPU time that is used to execute code blocks. You can obtain the CPU time that is used to execute instructions based on the CPU time that is used to execute functions. This time does not include the CPU wait time or the time that is used to process the instructions of other programs.
Wall: The actual time that is used to execute code blocks. The wall clock time of a function is used to measure the duration from the start to exit of the function. The wall clock time includes wait time, lock time, and thread synchronization time. The actual time of code blocks is larger than the CPU time.
itimer: The itimer mode is called based on the setitimer(ITIMER_PROF) system. In ideal scenarios, a metric is generated each time when a process consumes a CPU time slot.