Support collect ZGC memory pool metrics (#11432)

* Support collect ZGC memory pool metrics

* submodule update
This commit is contained in:
Wayne Chu 2023-10-20 15:38:33 +08:00 committed by GitHub
parent 062b31f4ba
commit 5d0bd0569b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 138 additions and 13 deletions

@ -1 +1 @@
Subproject commit 0da9c8b3e111fb51c9f8854cae16d4519462ecfe
Subproject commit d4da5699915ee52288f8ff1c954decf6363485bc

View File

@ -65,6 +65,11 @@ enum PoolType {
SURVIVOR_USAGE = 3;
PERMGEN_USAGE = 4;
METASPACE_USAGE = 5;
ZHEAP_USAGE = 6;
COMPRESSED_CLASS_SPACE_USAGE = 7;
CODEHEAP_NON_NMETHODS_USAGE = 8;
CODEHEAP_PROFILED_NMETHODS_USAGE = 9;
CODEHEAP_NON_PROFILED_NMETHODS_USAGE = 10;
}
message GC {

View File

@ -26,6 +26,7 @@
* Optimize queryBasicTraces in TraceQueryEsDAO.
* Fix `WebhookCallback` send incorrect messages, add catch exception for each callback HTTP Post.
* Fix AlarmRule expression validation: add labeled metrics mock data for check.
* Support collect ZGC memory pool metrics.
#### UI
@ -36,6 +37,8 @@
* Refactor: update pagination style. No visualization style change.
* Apply MQE on K8s layer UI-templates.
* Fix icons display in trace tree diagram.
* fix: update tooltip style to support multiple metrics scrolling view in a metrics graph.
* Add a new widget to show jvm memory pool detail.
#### Documentation

View File

@ -174,6 +174,21 @@ public class JVMSourceDispatcher {
case CODE_CACHE_USAGE:
serviceInstanceJVMMemoryPool.setPoolType(MemoryPoolType.CODE_CACHE_USAGE);
break;
case ZHEAP_USAGE:
serviceInstanceJVMMemoryPool.setPoolType(MemoryPoolType.ZHEAP_USAGE);
break;
case COMPRESSED_CLASS_SPACE_USAGE:
serviceInstanceJVMMemoryPool.setPoolType(MemoryPoolType.COMPRESSED_CLASS_SPACE_USAGE);
break;
case CODEHEAP_NON_NMETHODS_USAGE:
serviceInstanceJVMMemoryPool.setPoolType(MemoryPoolType.CODEHEAP_NON_NMETHODS_USAGE);
break;
case CODEHEAP_PROFILED_NMETHODS_USAGE:
serviceInstanceJVMMemoryPool.setPoolType(MemoryPoolType.CODEHEAP_PROFILED_NMETHODS_USAGE);
break;
case CODEHEAP_NON_PROFILED_NMETHODS_USAGE:
serviceInstanceJVMMemoryPool.setPoolType(MemoryPoolType.CODEHEAP_NON_PROFILED_NMETHODS_USAGE);
break;
}
serviceInstanceJVMMemoryPool.setInit(memoryPool.getInit());

View File

@ -19,5 +19,15 @@
package org.apache.skywalking.oap.server.core.source;
public enum MemoryPoolType {
CODE_CACHE_USAGE, NEWGEN_USAGE, OLDGEN_USAGE, SURVIVOR_USAGE, PERMGEN_USAGE, METASPACE_USAGE
CODE_CACHE_USAGE,
NEWGEN_USAGE,
OLDGEN_USAGE,
SURVIVOR_USAGE,
PERMGEN_USAGE,
METASPACE_USAGE,
ZHEAP_USAGE,
COMPRESSED_CLASS_SPACE_USAGE,
CODEHEAP_NON_NMETHODS_USAGE,
CODEHEAP_PROFILED_NMETHODS_USAGE,
CODEHEAP_NON_PROFILED_NMETHODS_USAGE,
}

View File

@ -22,6 +22,17 @@ instance_jvm_memory_heap = from(ServiceInstanceJVMMemory.used).filter(heapStatus
instance_jvm_memory_noheap = from(ServiceInstanceJVMMemory.used).filter(heapStatus == false).longAvg();
instance_jvm_memory_heap_max = from(ServiceInstanceJVMMemory.max).filter(heapStatus == true).longAvg();
instance_jvm_memory_noheap_max = from(ServiceInstanceJVMMemory.max).filter(heapStatus == false).longAvg();
instance_jvm_memory_pool_code_cache = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.CODE_CACHE_USAGE).longAvg();
instance_jvm_memory_pool_newgen = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.NEWGEN_USAGE).longAvg();
instance_jvm_memory_pool_oldgen = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.OLDGEN_USAGE).longAvg();
instance_jvm_memory_pool_survivor = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.SURVIVOR_USAGE).longAvg();
instance_jvm_memory_pool_permgen = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.PERMGEN_USAGE).longAvg();
instance_jvm_memory_pool_metaspace = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.METASPACE_USAGE).longAvg();
instance_jvm_memory_pool_zheap = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.ZHEAP_USAGE).longAvg();
instance_jvm_memory_pool_compressed_class_space = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.COMPRESSED_CLASS_SPACE_USAGE).longAvg();
instance_jvm_memory_pool_codeheap_non_nmethods = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.CODEHEAP_NON_NMETHODS_USAGE).longAvg();
instance_jvm_memory_pool_codeheap_profiled_nmethods = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.CODEHEAP_PROFILED_NMETHODS_USAGE).longAvg();
instance_jvm_memory_pool_codeheap_non_profiled_nmethods = from(ServiceInstanceJVMMemoryPool.used).filter(poolType == MemoryPoolType.CODEHEAP_NON_PROFILED_NMETHODS_USAGE).longAvg();
instance_jvm_young_gc_time = from(ServiceInstanceJVMGC.time).filter(phase == GCPhase.NEW).sum();
instance_jvm_old_gc_time = from(ServiceInstanceJVMGC.time).filter(phase == GCPhase.OLD).sum();
instance_jvm_normal_gc_time = from(ServiceInstanceJVMGC.time).filter(phase == GCPhase.NORMAL).sum();

View File

@ -284,7 +284,7 @@
"y": 0,
"w": 8,
"h": 13,
"i": "5",
"i": "4",
"type": "Widget",
"widget": {
"title": "JVM Memory (MB)"
@ -326,7 +326,88 @@
]
},
{
"x": 8,
"x": 16,
"y": 0,
"w": 8,
"h": 13,
"i": "5",
"type": "Widget",
"widget": {
"title": "JVM Memory Detail (MB)"
},
"graph": {
"type": "Line",
"step": false,
"smooth": false,
"showSymbol": true,
"showXAxis": true,
"showYAxis": true
},
"metricConfig": [
{
"label": "CodeCache"
},
{
"label": "NewGen"
},
{
"label": "OldGen"
},
{
"label": "Survivor"
},
{
"label": "PermGen"
},
{
"label": "Metaspace"
},
{
"label": "ZHeap"
},
{
"label": "Compressed Class Space"
},
{
"label": "CodeHeap 'non-nmethods'"
},
{
"label": "CodeHeap 'profiled nmethods'"
},
{
"label": "CodeHeap 'non-profiled nmethods'"
}
],
"metricMode": "Expression",
"expressions": [
"instance_jvm_memory_pool_code_cache/1048576",
"instance_jvm_memory_pool_newgen/1048576",
"instance_jvm_memory_pool_oldgen/1048576",
"instance_jvm_memory_pool_survivor/1048576",
"instance_jvm_memory_pool_permgen/1048576",
"instance_jvm_memory_pool_metaspace/1048576",
"instance_jvm_memory_pool_zheap/1048576",
"instance_jvm_memory_pool_compressed_class_space/1048576",
"instance_jvm_memory_pool_codeheap_non_nmethods/1048576",
"instance_jvm_memory_pool_codeheap_profiled_nmethods/1048576",
"instance_jvm_memory_pool_codeheap_non_profiled_nmethods/1048576"
],
"typesOfMQE": [
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES"
]
},
{
"x": 16,
"y": 13,
"w": 8,
"h": 13,
@ -367,8 +448,8 @@
]
},
{
"x": 16,
"y": 13,
"x": 0,
"y": 26,
"w": 8,
"h": 13,
"i": "13",
@ -440,10 +521,10 @@
]
},
{
"x": 0,
"x": 8,
"y": 26,
"w": 8,
"h": 12,
"h": 13,
"i": "15",
"type": "Widget",
"widget": {
@ -479,8 +560,8 @@
]
},
{
"x": 16,
"y": 0,
"x": 0,
"y": 13,
"w": 8,
"h": 13,
"i": "6",
@ -520,7 +601,7 @@
]
},
{
"x": 0,
"x": 8,
"y": 13,
"w": 8,
"h": 13,

@ -1 +1 @@
Subproject commit e42734ba80e1ada3784880b8b70cafc69e234b79
Subproject commit 1be2792ff46547fafe5b554b0cd4f086dd8d02b7

@ -1 +1 @@
Subproject commit b8d5a5c27c271303ff1d3911fb85a554352f4f23
Subproject commit d4da5699915ee52288f8ff1c954decf6363485bc