This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 5d0bd0569b Support collect ZGC memory pool metrics (#11432)
5d0bd0569b is described below
commit 5d0bd0569b23bcd40a3c9ea0898e27d6aefd1e84
Author: Wayne Chu <[email protected]>
AuthorDate: Fri Oct 20 15:38:33 2023 +0800
Support collect ZGC memory pool metrics (#11432)
* Support collect ZGC memory pool metrics
* submodule update
---
apm-protocol/apm-network/src/main/proto | 2 +-
docs/en/api/jvm-protocol.md | 5 ++
docs/en/changes/changes.md | 3 +
.../analyzer/provider/jvm/JVMSourceDispatcher.java | 15 ++++
.../oap/server/core/source/MemoryPoolType.java | 12 ++-
.../src/main/resources/oal/java-agent.oal | 11 +++
.../general/general-instance.json | 99 ++++++++++++++++++++--
skywalking-ui | 2 +-
.../java-test-service/e2e-protocol/src/main/proto | 2 +-
9 files changed, 138 insertions(+), 13 deletions(-)
diff --git a/apm-protocol/apm-network/src/main/proto
b/apm-protocol/apm-network/src/main/proto
index 0da9c8b3e1..d4da569991 160000
--- a/apm-protocol/apm-network/src/main/proto
+++ b/apm-protocol/apm-network/src/main/proto
@@ -1 +1 @@
-Subproject commit 0da9c8b3e111fb51c9f8854cae16d4519462ecfe
+Subproject commit d4da5699915ee52288f8ff1c954decf6363485bc
diff --git a/docs/en/api/jvm-protocol.md b/docs/en/api/jvm-protocol.md
index 2374a8d3a6..e22df4d518 100644
--- a/docs/en/api/jvm-protocol.md
+++ b/docs/en/api/jvm-protocol.md
@@ -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 {
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index cebc12bf8c..a5715bae9f 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -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
diff --git
a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java
b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java
index eca95ce2e5..bf7139014a 100644
---
a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java
+++
b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java
@@ -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());
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MemoryPoolType.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MemoryPoolType.java
index 2e39271d9c..831e172f04 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MemoryPoolType.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/MemoryPoolType.java
@@ -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,
}
diff --git a/oap-server/server-starter/src/main/resources/oal/java-agent.oal
b/oap-server/server-starter/src/main/resources/oal/java-agent.oal
index d5381f4dca..497f6c41bb 100644
--- a/oap-server/server-starter/src/main/resources/oal/java-agent.oal
+++ b/oap-server/server-starter/src/main/resources/oal/java-agent.oal
@@ -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();
diff --git
a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json
b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json
index bc51b96b8b..ed8b3e26e9 100644
---
a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json
+++
b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json
@@ -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,
diff --git a/skywalking-ui b/skywalking-ui
index e42734ba80..1be2792ff4 160000
--- a/skywalking-ui
+++ b/skywalking-ui
@@ -1 +1 @@
-Subproject commit e42734ba80e1ada3784880b8b70cafc69e234b79
+Subproject commit 1be2792ff46547fafe5b554b0cd4f086dd8d02b7
diff --git a/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
b/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
index b8d5a5c27c..d4da569991 160000
--- a/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
+++ b/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
@@ -1 +1 @@
-Subproject commit b8d5a5c27c271303ff1d3911fb85a554352f4f23
+Subproject commit d4da5699915ee52288f8ff1c954decf6363485bc