From 600bb2ba5aaf564597516a2eef4be3ad908267d1 Mon Sep 17 00:00:00 2001 From: Jaehong-Kim Date: Wed, 13 Dec 2023 15:12:15 +0900 Subject: [PATCH] [#10547] add zgc(java gc) type to the agent --- .../mapper/grpc/stat/GrpcJvmGcTypeMapper.java | 2 + .../grpc/stat/GrpcJvmGcTypeMapperTest.java | 41 +++++++++++++++++++ .../pinpoint/common/server/bo/JvmGcType.java | 3 +- .../grpc/GrpcJvmGcTypeMessageConverter.java | 2 + .../metric/gc/GarbageCollectorType.java | 4 +- .../profiler/monitor/metric/gc/JvmGcType.java | 3 +- 6 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 collector/src/test/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapperTest.java diff --git a/collector/src/main/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapper.java b/collector/src/main/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapper.java index 3ee9990215c9..af39eb259665 100644 --- a/collector/src/main/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapper.java +++ b/collector/src/main/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapper.java @@ -38,6 +38,8 @@ public JvmGcType map(final PJvmGcType type) { return JvmGcType.CMS; case JVM_GC_TYPE_G1: return JvmGcType.G1; + case JVM_GC_TYPE_ZGC: + return JvmGcType.ZGC; default: return JvmGcType.UNKNOWN; } diff --git a/collector/src/test/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapperTest.java b/collector/src/test/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapperTest.java new file mode 100644 index 000000000000..6a3050718c74 --- /dev/null +++ b/collector/src/test/java/com/navercorp/pinpoint/collector/mapper/grpc/stat/GrpcJvmGcTypeMapperTest.java @@ -0,0 +1,41 @@ +/* + * Copyright 2023 NAVER Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.navercorp.pinpoint.collector.mapper.grpc.stat; + +import com.navercorp.pinpoint.common.server.bo.JvmGcType; +import com.navercorp.pinpoint.grpc.trace.PJvmGcType; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class GrpcJvmGcTypeMapperTest { + + @Test + public void map() throws Exception { + GrpcJvmGcTypeMapper mapper = new GrpcJvmGcTypeMapper(); + JvmGcType jvmGcType = mapper.map(PJvmGcType.JVM_GC_TYPE_CMS); + assertEquals(jvmGcType, JvmGcType.CMS); + jvmGcType = mapper.map(PJvmGcType.JVM_GC_TYPE_G1); + assertEquals(jvmGcType, JvmGcType.G1); + jvmGcType = mapper.map(PJvmGcType.JVM_GC_TYPE_SERIAL); + assertEquals(jvmGcType, JvmGcType.SERIAL); + jvmGcType = mapper.map(PJvmGcType.JVM_GC_TYPE_PARALLEL); + assertEquals(jvmGcType, JvmGcType.PARALLEL); + jvmGcType = mapper.map(PJvmGcType.JVM_GC_TYPE_ZGC); + assertEquals(jvmGcType, JvmGcType.ZGC); + } +} \ No newline at end of file diff --git a/commons-server/src/main/java/com/navercorp/pinpoint/common/server/bo/JvmGcType.java b/commons-server/src/main/java/com/navercorp/pinpoint/common/server/bo/JvmGcType.java index 4db4b392dfe0..0f069923010c 100644 --- a/commons-server/src/main/java/com/navercorp/pinpoint/common/server/bo/JvmGcType.java +++ b/commons-server/src/main/java/com/navercorp/pinpoint/common/server/bo/JvmGcType.java @@ -27,7 +27,8 @@ public enum JvmGcType { SERIAL(1), PARALLEL(2), CMS(3), - G1(4); + G1(4), + ZGC(5); private final int typeCode; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/grpc/GrpcJvmGcTypeMessageConverter.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/grpc/GrpcJvmGcTypeMessageConverter.java index 67f520d85553..1d78024c27f9 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/grpc/GrpcJvmGcTypeMessageConverter.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/grpc/GrpcJvmGcTypeMessageConverter.java @@ -48,6 +48,8 @@ PJvmGcType convertJvmGcType(final JvmGcType jvmGcType) { return PJvmGcType.JVM_GC_TYPE_CMS; case G1: return PJvmGcType.JVM_GC_TYPE_G1; + case ZGC: + return PJvmGcType.JVM_GC_TYPE_ZGC; default: return PJvmGcType.JVM_GC_TYPE_UNKNOWN; } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/GarbageCollectorType.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/GarbageCollectorType.java index 1fb177d52ec7..240e18501a9b 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/GarbageCollectorType.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/GarbageCollectorType.java @@ -23,7 +23,9 @@ public enum GarbageCollectorType { SERIAL(JvmGcType.SERIAL, "MarkSweepCompact", "Copy"), PARALLEL(JvmGcType.PARALLEL, "PS MarkSweep", "PS Scavenge"), CMS(JvmGcType.CMS, "ConcurrentMarkSweep", "ParNew"), - G1(JvmGcType.G1, "G1 Old Generation", "G1 Young Generation"); + G1(JvmGcType.G1, "G1 Old Generation", "G1 Young Generation"), + + ZGC(JvmGcType.ZGC, "ZGC Major Pauses", "ZGC Minor Pauses"); private final JvmGcType jvmGcType; private final String oldGenName; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/JvmGcType.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/JvmGcType.java index 9b42c6e0d437..267782629e9a 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/JvmGcType.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/monitor/metric/gc/JvmGcType.java @@ -24,7 +24,8 @@ public enum JvmGcType { SERIAL(1), PARALLEL(2), CMS(3), - G1(4); + G1(4), + ZGC(5); private final int value;