This is an automated email from the ASF dual-hosted git repository.

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 0cc80f63635 HDDS-9438. Improve ProtocolMessageMetrics (#9600)
0cc80f63635 is described below

commit 0cc80f636354e820e5de85dd164ab56ab0ff207c
Author: Russole <[email protected]>
AuthorDate: Thu Jan 8 12:30:00 2026 +0800

    HDDS-9438. Improve ProtocolMessageMetrics (#9600)
---
 .../container/common/impl/HddsDispatcher.java      |  7 +-
 ...inerDatanodeProtocolServerSideTranslatorPB.java |  5 +-
 .../server/OzoneProtocolMessageDispatcher.java     |  2 +-
 .../hadoop/hdds/utils/ProtocolMessageMetrics.java  | 87 ++++++++++------------
 .../SCMSecurityProtocolServerSideTranslatorPB.java |  3 +-
 ...lockLocationProtocolServerSideTranslatorPB.java |  5 +-
 .../SecretKeyProtocolServerSideTranslatorPB.java   |  4 +-
 ...inerLocationProtocolServerSideTranslatorPB.java |  5 +-
 .../hdds/scm/server/SCMBlockProtocolServer.java    |  5 +-
 .../hdds/scm/server/SCMClientProtocolServer.java   |  5 +-
 .../hdds/scm/server/SCMDatanodeProtocolServer.java |  7 +-
 .../hdds/scm/server/SCMSecurityProtocolServer.java |  4 +-
 .../org/apache/hadoop/ozone/om/OzoneManager.java   |  5 +-
 ...OzoneManagerProtocolServerSideTranslatorPB.java |  5 +-
 .../om/ratis/TestOzoneManagerRatisRequest.java     |  3 +-
 .../hadoop/ozone/om/response/TestOMResponse.java   |  3 +-
 .../recon/scm/ReconDatanodeProtocolServer.java     |  5 +-
 17 files changed, 70 insertions(+), 90 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
index 5dec84b0766..d8a32c677a6 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
@@ -78,7 +78,6 @@
 import org.apache.hadoop.ozone.container.ozoneimpl.DataScanResult;
 import org.apache.hadoop.util.Time;
 import org.apache.ratis.statemachine.StateMachine;
-import org.apache.ratis.thirdparty.com.google.protobuf.ProtocolMessageEnum;
 import org.apache.ratis.thirdparty.io.grpc.stub.StreamObserver;
 import org.apache.ratis.util.UncheckedAutoCloseable;
 import org.slf4j.Logger;
@@ -110,9 +109,9 @@ public class HddsDispatcher implements ContainerDispatcher, 
Auditor {
   private final ContainerSet containerSet;
   private final StateContext context;
   private final float containerCloseThreshold;
-  private final ProtocolMessageMetrics<ProtocolMessageEnum> protocolMetrics;
+  private final ProtocolMessageMetrics<Type> protocolMetrics;
   private OzoneProtocolMessageDispatcher<ContainerCommandRequestProto,
-      ContainerCommandResponseProto, ProtocolMessageEnum> dispatcher;
+      ContainerCommandResponseProto, Type> dispatcher;
   private String clusterId;
   private ContainerMetrics metrics;
   private final TokenVerifier tokenVerifier;
@@ -142,7 +141,7 @@ public HddsDispatcher(ConfigurationSource config, 
ContainerSet contSet,
         new ProtocolMessageMetrics<>(
             "HddsDispatcher",
             "HDDS dispatcher metrics",
-            Type.values());
+            Type.class);
 
     this.dispatcher =
         new OzoneProtocolMessageDispatcher<>("DatanodeClient",
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerDatanodeProtocolServerSideTranslatorPB.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerDatanodeProtocolServerSideTranslatorPB.java
index dbc2d97e5b3..633500f9431 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerDatanodeProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerDatanodeProtocolServerSideTranslatorPB.java
@@ -20,7 +20,6 @@
 import static org.apache.hadoop.hdds.upgrade.HDDSLayoutFeature.INITIAL_VERSION;
 import static 
org.apache.hadoop.ozone.container.upgrade.UpgradeUtils.toLayoutVersionProto;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.RpcController;
 import com.google.protobuf.ServiceException;
 import java.io.IOException;
@@ -54,11 +53,11 @@ public class 
StorageContainerDatanodeProtocolServerSideTranslatorPB
 
   private final StorageContainerDatanodeProtocol impl;
   private final OzoneProtocolMessageDispatcher<SCMDatanodeRequest,
-      SCMDatanodeResponse, ProtocolMessageEnum> dispatcher;
+      SCMDatanodeResponse, Type> dispatcher;
 
   public StorageContainerDatanodeProtocolServerSideTranslatorPB(
       StorageContainerDatanodeProtocol impl,
-      ProtocolMessageMetrics<ProtocolMessageEnum> protocolMessageMetrics) {
+      ProtocolMessageMetrics<Type> protocolMessageMetrics) {
     this.impl = impl;
     dispatcher =
         new OzoneProtocolMessageDispatcher<>("SCMDatanodeProtocol",
diff --git 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/OzoneProtocolMessageDispatcher.java
 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/OzoneProtocolMessageDispatcher.java
index 806431e3b58..a0e19664366 100644
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/OzoneProtocolMessageDispatcher.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/OzoneProtocolMessageDispatcher.java
@@ -34,7 +34,7 @@
  * It logs the message type/content on DEBUG/TRACING log for insight and create
  * a new span based on the tracing information.
  */
-public class OzoneProtocolMessageDispatcher<REQUEST, RESPONSE, TYPE> {
+public class OzoneProtocolMessageDispatcher<REQUEST, RESPONSE, TYPE extends 
Enum<TYPE>> {
 
   private final String serviceName;
 
diff --git 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/ProtocolMessageMetrics.java
 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/ProtocolMessageMetrics.java
index 09e154f9aab..9678dd7cd64 100644
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/ProtocolMessageMetrics.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/ProtocolMessageMetrics.java
@@ -17,13 +17,13 @@
 
 package org.apache.hadoop.hdds.utils;
 
+import java.util.Collections;
+import java.util.EnumMap;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.hadoop.metrics2.MetricsCollector;
 import org.apache.hadoop.metrics2.MetricsInfo;
-import org.apache.hadoop.metrics2.MetricsRecordBuilder;
 import org.apache.hadoop.metrics2.MetricsSource;
 import org.apache.hadoop.metrics2.MetricsTag;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
@@ -34,38 +34,40 @@
 /**
  * Metrics to count all the subtypes of a specific message.
  */
-public class ProtocolMessageMetrics<KEY> implements MetricsSource {
+public class ProtocolMessageMetrics<KEY extends Enum<KEY>> implements 
MetricsSource {
 
   private final String name;
 
   private final String description;
 
-  private final Map<KEY, AtomicLong> counters =
-      new ConcurrentHashMap<>();
-
-  private final Map<KEY, AtomicLong> elapsedTimes =
-      new ConcurrentHashMap<>();
+  private final Map<KEY, Stats> stats;
 
   private final AtomicInteger concurrency = new AtomicInteger(0);
 
-  public static <KEY> ProtocolMessageMetrics<KEY> create(String name,
-      String description, KEY[] types) {
-    return new ProtocolMessageMetrics<KEY>(name, description, types);
+  private static final MetricsInfo TYPE_TAG_INFO = Interns.info("type", 
"Message type");
+  private static final MetricsInfo COUNTER_INFO = Interns.info("counter", 
"Number of distinct calls");
+  private static final MetricsInfo TIME_INFO = Interns.info("time", "Sum of 
the duration of the calls");
+  private static final MetricsInfo CONCURRENCY_INFO = 
Interns.info("concurrency",
+      "Number of requests processed concurrently");
+
+  public static <KEY extends Enum<KEY>> ProtocolMessageMetrics<KEY> 
create(String name,
+      String description, Class<KEY> enumClass) {
+    return new ProtocolMessageMetrics<>(name, description, enumClass);
   }
 
   public ProtocolMessageMetrics(String name, String description,
-      KEY[] values) {
+      Class<KEY> enumClass) {
     this.name = name;
     this.description = description;
-    for (KEY value : values) {
-      counters.put(value, new AtomicLong(0));
-      elapsedTimes.put(value, new AtomicLong(0));
+    final EnumMap<KEY, Stats> map = new EnumMap<>(enumClass);
+    for (KEY value : enumClass.getEnumConstants()) {
+      map.put(value, new Stats());
     }
+    this.stats = Collections.unmodifiableMap(map);
   }
 
   public void increment(KEY key, long duration) {
-    counters.get(key).incrementAndGet();
-    elapsedTimes.get(key).addAndGet(duration);
+    stats.get(key).add(duration);
   }
 
   public UncheckedAutoCloseable measure(KEY key) {
@@ -73,8 +75,7 @@ public UncheckedAutoCloseable measure(KEY key) {
     concurrency.incrementAndGet();
     return () -> {
       concurrency.decrementAndGet();
-      counters.get(key).incrementAndGet();
-      elapsedTimes.get(key).addAndGet(Time.monotonicNow() - startTime);
+      stats.get(key).add(Time.monotonicNow() - startTime);
     };
   }
 
@@ -89,44 +90,36 @@ public void unregister() {
 
   @Override
   public void getMetrics(MetricsCollector collector, boolean all) {
-    counters.forEach((key, value) -> {
-      MetricsRecordBuilder builder =
-          collector.addRecord(name);
-      builder.add(
-          new MetricsTag(Interns.info("type", "Message type"), 
key.toString()));
-      builder.addCounter(new MetricName("counter", "Number of distinct calls"),
-          value.longValue());
-      builder.addCounter(
-          new MetricName("time", "Sum of the duration of the calls"),
-          elapsedTimes.get(key).longValue());
-      builder.endRecord();
-
+    stats.forEach((key, stat) -> {
+      collector.addRecord(name)
+          .add(new MetricsTag(TYPE_TAG_INFO, key.toString()))
+          .addCounter(COUNTER_INFO, stat.counter())
+          .addCounter(TIME_INFO, stat.time())
+          .endRecord();
     });
-    MetricsRecordBuilder builder = collector.addRecord(name);
-    builder.addCounter(new MetricName("concurrency",
-            "Number of requests processed concurrently"), concurrency.get());
+    collector.addRecord(name)
+        .addCounter(CONCURRENCY_INFO, concurrency.get())
+        .endRecord();
   }
 
   /**
-   * Simple metrics info implementation.
+   * Holds counters for a single message type.
    */
-  public static class MetricName implements MetricsInfo {
-    private final String name;
-    private final String description;
+  private static final class Stats {
+    private final AtomicLong counter = new AtomicLong(0);
+    private final AtomicLong time = new AtomicLong(0);
 
-    public MetricName(String name, String description) {
-      this.name = name;
-      this.description = description;
+    void add(long duration) {
+      counter.incrementAndGet();
+      time.addAndGet(duration);
     }
 
-    @Override
-    public String name() {
-      return name;
+    long counter() {
+      return counter.get();
     }
 
-    @Override
-    public String description() {
-      return description;
+    long time() {
+      return time.get();
     }
   }
 }
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SCMSecurityProtocolServerSideTranslatorPB.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SCMSecurityProtocolServerSideTranslatorPB.java
index 2eb281bf2ad..85088db1b58 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SCMSecurityProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SCMSecurityProtocolServerSideTranslatorPB.java
@@ -17,7 +17,6 @@
 
 package org.apache.hadoop.hdds.scm.protocol;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.RpcController;
 import com.google.protobuf.ServiceException;
 import java.io.IOException;
@@ -63,7 +62,7 @@ public class SCMSecurityProtocolServerSideTranslatorPB
   private static final String ROLE_TYPE = "SCM";
 
   private OzoneProtocolMessageDispatcher<SCMSecurityRequest,
-      SCMSecurityResponse, ProtocolMessageEnum>
+      SCMSecurityResponse, SCMSecurityProtocolProtos.Type>
       dispatcher;
 
   public SCMSecurityProtocolServerSideTranslatorPB(SCMSecurityProtocol impl,
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/ScmBlockLocationProtocolServerSideTranslatorPB.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/ScmBlockLocationProtocolServerSideTranslatorPB.java
index 94fd0f5dd36..f9fa80bf42d 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/ScmBlockLocationProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/ScmBlockLocationProtocolServerSideTranslatorPB.java
@@ -17,7 +17,6 @@
 
 package org.apache.hadoop.hdds.scm.protocol;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.RpcController;
 import com.google.protobuf.ServiceException;
 import java.io.IOException;
@@ -76,7 +75,7 @@ public final class 
ScmBlockLocationProtocolServerSideTranslatorPB
       .getLogger(ScmBlockLocationProtocolServerSideTranslatorPB.class);
 
   private final OzoneProtocolMessageDispatcher<SCMBlockLocationRequest,
-      SCMBlockLocationResponse, ProtocolMessageEnum>
+      SCMBlockLocationResponse, ScmBlockLocationProtocolProtos.Type>
       dispatcher;
 
   /**
@@ -87,7 +86,7 @@ public final class 
ScmBlockLocationProtocolServerSideTranslatorPB
   public ScmBlockLocationProtocolServerSideTranslatorPB(
       ScmBlockLocationProtocol impl,
       StorageContainerManager scm,
-      ProtocolMessageMetrics<ProtocolMessageEnum> metrics)
+      ProtocolMessageMetrics<ScmBlockLocationProtocolProtos.Type> metrics)
       throws IOException {
     this.impl = impl;
     this.scm = scm;
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SecretKeyProtocolServerSideTranslatorPB.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SecretKeyProtocolServerSideTranslatorPB.java
index dac8b2175f1..83b9dad62df 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SecretKeyProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/SecretKeyProtocolServerSideTranslatorPB.java
@@ -17,12 +17,12 @@
 
 package org.apache.hadoop.hdds.scm.protocol;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.RpcController;
 import com.google.protobuf.ServiceException;
 import java.io.IOException;
 import java.util.UUID;
 import org.apache.hadoop.hdds.protocol.SecretKeyProtocolScm;
+import org.apache.hadoop.hdds.protocol.proto.SCMSecretKeyProtocolProtos;
 import 
org.apache.hadoop.hdds.protocol.proto.SCMSecretKeyProtocolProtos.SCMGetCheckAndRotateResponse;
 import 
org.apache.hadoop.hdds.protocol.proto.SCMSecretKeyProtocolProtos.SCMGetCurrentSecretKeyResponse;
 import 
org.apache.hadoop.hdds.protocol.proto.SCMSecretKeyProtocolProtos.SCMGetSecretKeyRequest;
@@ -58,7 +58,7 @@ public class SecretKeyProtocolServerSideTranslatorPB
   private static final String ROLE_TYPE = "SCM";
 
   private OzoneProtocolMessageDispatcher<SCMSecretKeyRequest,
-      SCMSecretKeyResponse, ProtocolMessageEnum> dispatcher;
+      SCMSecretKeyResponse, SCMSecretKeyProtocolProtos.Type> dispatcher;
 
   public SecretKeyProtocolServerSideTranslatorPB(SecretKeyProtocolScm impl,
       StorageContainerManager storageContainerManager,
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
index 1e8f76e1c11..62f06079bf0 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
@@ -30,7 +30,6 @@
 import static 
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.Type.ListPipelines;
 import static 
org.apache.hadoop.hdds.scm.protocol.StorageContainerLocationProtocol.ADMIN_COMMAND_TYPE;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.RpcController;
 import com.google.protobuf.ServiceException;
 import java.io.IOException;
@@ -185,7 +184,7 @@ public final class 
StorageContainerLocationProtocolServerSideTranslatorPB
   private static final String ROLE_TYPE = "SCM";
 
   private OzoneProtocolMessageDispatcher<ScmContainerLocationRequest,
-      ScmContainerLocationResponse, ProtocolMessageEnum>
+      ScmContainerLocationResponse, 
StorageContainerLocationProtocolProtos.Type>
       dispatcher;
 
   /**
@@ -198,7 +197,7 @@ public final class 
StorageContainerLocationProtocolServerSideTranslatorPB
   public StorageContainerLocationProtocolServerSideTranslatorPB(
       StorageContainerLocationProtocol impl,
       StorageContainerManager scm,
-      ProtocolMessageMetrics<ProtocolMessageEnum> protocolMetrics)
+      ProtocolMessageMetrics<StorageContainerLocationProtocolProtos.Type> 
protocolMetrics)
       throws IOException {
     this.impl = impl;
     this.scm = scm;
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMBlockProtocolServer.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMBlockProtocolServer.java
index 494ce418107..1fc7c2d96b2 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMBlockProtocolServer.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMBlockProtocolServer.java
@@ -33,7 +33,6 @@
 
 import com.google.common.collect.Maps;
 import com.google.protobuf.BlockingService;
-import com.google.protobuf.ProtocolMessageEnum;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.ArrayList;
@@ -99,7 +98,7 @@ public class SCMBlockProtocolServer implements
   private final StorageContainerManager scm;
   private final RPC.Server blockRpcServer;
   private final InetSocketAddress blockRpcAddress;
-  private final ProtocolMessageMetrics<ProtocolMessageEnum>
+  private final ProtocolMessageMetrics<ScmBlockLocationProtocolProtos.Type>
       protocolMessageMetrics;
   private final SCMPerformanceMetrics perfMetrics;
 
@@ -123,7 +122,7 @@ public SCMBlockProtocolServer(OzoneConfiguration conf,
         ProtocolMessageMetrics.create(
             "ScmBlockLocationProtocol",
             "SCM Block location protocol counters",
-            ScmBlockLocationProtocolProtos.Type.values());
+            ScmBlockLocationProtocolProtos.Type.class);
 
     // SCM Block Service RPC.
     BlockingService blockProtoPbService =
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
index 3bd5214ea0e..5726d3449a7 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
@@ -34,7 +34,6 @@
 import com.google.common.base.Strings;
 import com.google.common.collect.Maps;
 import com.google.protobuf.BlockingService;
-import com.google.protobuf.ProtocolMessageEnum;
 import jakarta.annotation.Nullable;
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -140,7 +139,7 @@ public class SCMClientProtocolServer implements
   private final InetSocketAddress clientRpcAddress;
   private final StorageContainerManager scm;
   private final OzoneConfiguration config;
-  private final ProtocolMessageMetrics<ProtocolMessageEnum> protocolMetrics;
+  private final 
ProtocolMessageMetrics<StorageContainerLocationProtocolProtos.Type> 
protocolMetrics;
 
   public SCMClientProtocolServer(OzoneConfiguration conf,
       StorageContainerManager scm,
@@ -158,7 +157,7 @@ public SCMClientProtocolServer(OzoneConfiguration conf,
     protocolMetrics = ProtocolMessageMetrics
         .create("ScmContainerLocationProtocol",
             "SCM ContainerLocation protocol metrics",
-            StorageContainerLocationProtocolProtos.Type.values());
+            StorageContainerLocationProtocolProtos.Type.class);
 
     // SCM Container Service RPC
     BlockingService storageProtoPbService =
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeProtocolServer.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeProtocolServer.java
index c0c88d0de1a..51df2647b44 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeProtocolServer.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeProtocolServer.java
@@ -43,7 +43,6 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Maps;
 import com.google.protobuf.BlockingService;
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.TextFormat;
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -130,7 +129,7 @@ public class SCMDatanodeProtocolServer implements
   private final InetSocketAddress datanodeRpcAddress;
   private final SCMDatanodeHeartbeatDispatcher heartbeatDispatcher;
   private final EventPublisher eventPublisher;
-  private ProtocolMessageMetrics<ProtocolMessageEnum> protocolMessageMetrics;
+  private ProtocolMessageMetrics<StorageContainerDatanodeProtocolProtos.Type> 
protocolMessageMetrics;
 
   private final SCMContext scmContext;
 
@@ -491,11 +490,11 @@ public AuditMessage 
buildAuditMessageForFailure(AuditAction op, Map<String,
    * Get the ProtocolMessageMetrics for this server.
    * @return ProtocolMessageMetrics
    */
-  protected ProtocolMessageMetrics<ProtocolMessageEnum>
+  protected ProtocolMessageMetrics<StorageContainerDatanodeProtocolProtos.Type>
         getProtocolMessageMetrics() {
     return ProtocolMessageMetrics
         .create("SCMDatanodeProtocol", "SCM Datanode protocol",
-            StorageContainerDatanodeProtocolProtos.Type.values());
+            StorageContainerDatanodeProtocolProtos.Type.class);
   }
 
   /**
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
index 53e40497fc9..00e67f63439 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
@@ -135,10 +135,10 @@ public class SCMSecurityProtocolServer implements 
SCMSecurityProtocol,
         ProtobufRpcEngine.class);
     metrics = new ProtocolMessageMetrics("ScmSecurityProtocol",
         "SCM Security protocol metrics",
-        SCMSecurityProtocolProtos.Type.values());
+        SCMSecurityProtocolProtos.Type.class);
     secretKeyMetrics = new ProtocolMessageMetrics("ScmSecretKeyProtocol",
         "SCM SecretKey protocol metrics",
-        SCMSecretKeyProtocolProtos.Type.values());
+        SCMSecretKeyProtocolProtos.Type.class);
     BlockingService secureProtoPbService =
         SCMSecurityProtocolProtos.SCMSecurityProtocolService
             .newReflectiveBlockingService(
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index a51a0b56ecd..b48d8fbe40f 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -113,7 +113,6 @@
 import com.google.common.base.Strings;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.protobuf.BlockingService;
-import com.google.protobuf.ProtocolMessageEnum;
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.IOException;
@@ -414,7 +413,7 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
   private final OMMetrics metrics;
   private final OmSnapshotInternalMetrics omSnapshotIntMetrics;
   private OMHAMetrics omhaMetrics;
-  private final ProtocolMessageMetrics<ProtocolMessageEnum>
+  private final ProtocolMessageMetrics<OzoneManagerProtocolProtos.Type>
       omClientProtocolMetrics;
   private final DeletingServiceMetrics omDeletionMetrics;
   private OzoneManagerHttpServer httpServer;
@@ -702,7 +701,7 @@ private OzoneManager(OzoneConfiguration conf, StartupOption 
startupOption)
 
     omClientProtocolMetrics = ProtocolMessageMetrics
         .create("OmClientProtocol", "Ozone Manager RPC endpoint",
-            OzoneManagerProtocolProtos.Type.values());
+            OzoneManagerProtocolProtos.Type.class);
 
     // Start Om Rpc Server.
     omRpcServer = getRpcServer(configuration);
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
index 22d015be52f..fcd8af09214 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerProtocolServerSideTranslatorPB.java
@@ -24,7 +24,6 @@
 import static org.apache.hadoop.ozone.util.MetricUtil.captureLatencyNs;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.RpcController;
 import com.google.protobuf.ServiceException;
 import java.io.IOException;
@@ -73,7 +72,7 @@ public class OzoneManagerProtocolServerSideTranslatorPB 
implements OzoneManagerP
   private final RequestHandler handler;
   private final OzoneManager ozoneManager;
   private final OzoneProtocolMessageDispatcher<OMRequest, OMResponse,
-      ProtocolMessageEnum> dispatcher;
+      OzoneManagerProtocolProtos.Type> dispatcher;
   private final RequestValidations requestValidations;
   private final OMPerformanceMetrics perfMetrics;
 
@@ -87,7 +86,7 @@ public class OzoneManagerProtocolServerSideTranslatorPB 
implements OzoneManagerP
   public OzoneManagerProtocolServerSideTranslatorPB(
       OzoneManager impl,
       OzoneManagerRatisServer ratisServer,
-      ProtocolMessageMetrics<ProtocolMessageEnum> metrics) {
+      ProtocolMessageMetrics<OzoneManagerProtocolProtos.Type> metrics) {
     this.ozoneManager = impl;
     this.perfMetrics = impl.getPerfMetrics();
 
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerRatisRequest.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerRatisRequest.java
index fdc9e0f008d..f671c877c1f 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerRatisRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerRatisRequest.java
@@ -23,7 +23,6 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import com.google.protobuf.ServiceException;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -114,7 +113,7 @@ public void testUnknownRequestHandling()
     when(ozoneManager.getConfig()).thenReturn(omConfig);
 
     OzoneManagerRatisServer ratisServer = mock(OzoneManagerRatisServer.class);
-    ProtocolMessageMetrics<ProtocolMessageEnum> protocolMessageMetrics =
+    ProtocolMessageMetrics<OzoneManagerProtocolProtos.Type> 
protocolMessageMetrics =
         mock(ProtocolMessageMetrics.class);
 
     OzoneManagerProtocolProtos.OMResponse expectedResponse =
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/TestOMResponse.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/TestOMResponse.java
index d1032f59f50..bf7defdb4c1 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/TestOMResponse.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/TestOMResponse.java
@@ -21,7 +21,6 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import java.nio.file.Path;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -77,7 +76,7 @@ public void setup() throws Exception {
     OzoneManagerRatisServer ratisServer = mock(OzoneManagerRatisServer.class);
     when(ratisServer.checkRetryCache()).thenReturn(null);
 
-    ProtocolMessageMetrics<ProtocolMessageEnum> protocolMessageMetrics =
+    ProtocolMessageMetrics<OzoneManagerProtocolProtos.Type> 
protocolMessageMetrics =
         mock(ProtocolMessageMetrics.class);
 
     translator = new OzoneManagerProtocolServerSideTranslatorPB(
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconDatanodeProtocolServer.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconDatanodeProtocolServer.java
index 54cde820383..e845b9abb53 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconDatanodeProtocolServer.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconDatanodeProtocolServer.java
@@ -19,7 +19,6 @@
 
 import static 
org.apache.hadoop.hdds.recon.ReconConfigKeys.OZONE_RECON_DATANODE_ADDRESS_KEY;
 
-import com.google.protobuf.ProtocolMessageEnum;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -48,11 +47,11 @@ public ReconDatanodeProtocolServer(OzoneConfiguration conf,
   }
 
   @Override
-  public ProtocolMessageMetrics<ProtocolMessageEnum>
+  public ProtocolMessageMetrics<StorageContainerDatanodeProtocolProtos.Type>
       getProtocolMessageMetrics() {
     return ProtocolMessageMetrics
         .create("ReconDatanodeProtocol", "Recon Datanode protocol",
-            StorageContainerDatanodeProtocolProtos.Type.values());
+            StorageContainerDatanodeProtocolProtos.Type.class);
   }
 
   @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to