This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 64026dd HDDS-2660. Create insight point for datanode container
protocol (#1272)
64026dd is described below
commit 64026dd494a3d5109c16d2b521d726da5e4608da
Author: Elek, Márton <[email protected]>
AuthorDate: Thu Sep 24 13:08:44 2020 +0200
HDDS-2660. Create insight point for datanode container protocol (#1272)
---
.../container/common/impl/HddsDispatcher.java | 59 ++++++------
...inerDatanodeProtocolServerSideTranslatorPB.java | 2 +-
.../server/OzoneProtocolMessageDispatcher.java | 9 +-
.../SCMSecurityProtocolServerSideTranslatorPB.java | 17 ++--
...lockLocationProtocolServerSideTranslatorPB.java | 2 +-
...inerLocationProtocolServerSideTranslatorPB.java | 17 ++--
.../hadoop/ozone/insight/BaseInsightPoint.java | 34 ++++---
.../ozone/insight/BaseInsightSubCommand.java | 3 +
.../apache/hadoop/ozone/insight/InsightPoint.java | 4 +-
.../hadoop/ozone/insight/MetricGroupDisplay.java | 4 +-
.../hadoop/ozone/insight/MetricsSubCommand.java | 33 ++++---
.../datanode/DatanodeDispatcherInsight.java | 107 +++++++++++++++++++++
.../insight/datanode/PipelineComponentUtil.java | 78 +++++++++++++++
.../ozone/insight/datanode/RatisInsight.java | 45 +++------
.../hadoop/ozone/insight/om/KeyManagerInsight.java | 2 +-
.../hadoop/ozone/insight/om/OmProtocolInsight.java | 2 +-
.../ozone/insight/scm/NodeManagerInsight.java | 2 +-
.../ozone/insight/scm/ReplicaManagerInsight.java | 2 +-
.../scm/ScmProtocolBlockLocationInsight.java | 2 +-
.../scm/ScmProtocolContainerLocationInsight.java | 2 +-
.../insight/scm/ScmProtocolDatanodeInsight.java | 2 +-
.../insight/scm/ScmProtocolSecurityInsight.java | 2 +-
...OzoneManagerProtocolServerSideTranslatorPB.java | 4 +-
23 files changed, 313 insertions(+), 121 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 ab65805..d545406 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
@@ -23,9 +23,9 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.HddsUtils;
+import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos;
import
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerCommandRequestProto;
import
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerCommandResponseProto;
@@ -33,12 +33,13 @@ import
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerD
import
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerDataProto.State;
import
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerType;
import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.Result;
+import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.Type;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ContainerAction;
import
org.apache.hadoop.hdds.scm.container.common.helpers.ContainerNotOpenException;
import
org.apache.hadoop.hdds.scm.container.common.helpers.InvalidContainerStateException;
import
org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException;
import org.apache.hadoop.hdds.security.token.TokenVerifier;
-import org.apache.hadoop.hdds.tracing.TracingUtil;
+import org.apache.hadoop.hdds.server.OzoneProtocolMessageDispatcher;
import org.apache.hadoop.hdds.utils.ProtocolMessageMetrics;
import org.apache.hadoop.ozone.audit.AuditAction;
import org.apache.hadoop.ozone.audit.AuditEventStatus;
@@ -60,9 +61,7 @@ import org.apache.hadoop.security.UserGroupInformation;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
-import io.opentracing.Scope;
-import io.opentracing.Span;
-import io.opentracing.util.GlobalTracer;
+import com.google.protobuf.ServiceException;
import static
org.apache.hadoop.hdds.scm.protocolPB.ContainerCommandResponseBuilders.malformedRequest;
import static
org.apache.hadoop.hdds.scm.protocolPB.ContainerCommandResponseBuilders.unsupportedRequest;
@@ -86,6 +85,8 @@ public class HddsDispatcher implements ContainerDispatcher,
Auditor {
private final StateContext context;
private final float containerCloseThreshold;
private final ProtocolMessageMetrics<ProtocolMessageEnum> protocolMetrics;
+ private OzoneProtocolMessageDispatcher<ContainerCommandRequestProto,
+ ContainerCommandResponseProto, ProtocolMessageEnum> dispatcher;
private String scmID;
private ContainerMetrics metrics;
private final TokenVerifier tokenVerifier;
@@ -117,7 +118,12 @@ public class HddsDispatcher implements
ContainerDispatcher, Auditor {
new ProtocolMessageMetrics<>(
"HddsDispatcher",
"HDDS dispatcher metrics",
- ContainerProtos.Type.values());
+ Type.values());
+
+ this.dispatcher =
+ new OzoneProtocolMessageDispatcher<>("DatanodeClient",
+ protocolMetrics,
+ LOG);
}
@Override
@@ -158,16 +164,13 @@ public class HddsDispatcher implements
ContainerDispatcher, Auditor {
@Override
public ContainerCommandResponseProto dispatch(
ContainerCommandRequestProto msg, DispatcherContext dispatcherContext) {
- String spanName = "HddsDispatcher." + msg.getCmdType().name();
- long startTime = System.nanoTime();
- Span span = TracingUtil
- .importAndCreateSpan(spanName, msg.getTraceID());
- try (Scope scope = GlobalTracer.get().activateSpan(span)) {
- return dispatchRequest(msg, dispatcherContext);
- } finally {
- span.finish();
- protocolMetrics
- .increment(msg.getCmdType(), System.nanoTime() - startTime);
+ try {
+ return dispatcher.processRequest(msg,
+ req -> dispatchRequest(msg, dispatcherContext),
+ msg.getCmdType(),
+ msg.getTraceID());
+ } catch (ServiceException ex) {
+ throw new RuntimeException(ex);
}
}
@@ -189,16 +192,16 @@ public class HddsDispatcher implements
ContainerDispatcher, Auditor {
ContainerType containerType;
ContainerCommandResponseProto responseProto = null;
long startTime = System.nanoTime();
- ContainerProtos.Type cmdType = msg.getCmdType();
+ Type cmdType = msg.getCmdType();
long containerID = msg.getContainerID();
metrics.incContainerOpsMetrics(cmdType);
Container container = getContainer(containerID);
boolean isWriteStage =
- (cmdType == ContainerProtos.Type.WriteChunk && dispatcherContext !=
null
+ (cmdType == Type.WriteChunk && dispatcherContext != null
&& dispatcherContext.getStage()
== DispatcherContext.WriteChunkStage.WRITE_DATA);
boolean isWriteCommitStage =
- (cmdType == ContainerProtos.Type.WriteChunk && dispatcherContext !=
null
+ (cmdType == Type.WriteChunk && dispatcherContext != null
&& dispatcherContext.getStage()
== DispatcherContext.WriteChunkStage.COMMIT_DATA);
@@ -213,7 +216,7 @@ public class HddsDispatcher implements ContainerDispatcher,
Auditor {
// if the command gets executed other than Ratis, the default write stage
// is WriteChunkStage.COMBINED
boolean isCombinedStage =
- cmdType == ContainerProtos.Type.WriteChunk && (dispatcherContext ==
null
+ cmdType == Type.WriteChunk && (dispatcherContext == null
|| dispatcherContext.getStage()
== DispatcherContext.WriteChunkStage.COMBINED);
Map<Long, Long> container2BCSIDMap = null;
@@ -243,13 +246,13 @@ public class HddsDispatcher implements
ContainerDispatcher, Auditor {
return ContainerUtils.logAndReturnError(LOG, sce, msg);
}
- if (cmdType != ContainerProtos.Type.CreateContainer) {
+ if (cmdType != Type.CreateContainer) {
/**
* Create Container should happen only as part of Write_Data phase of
* writeChunk.
*/
if (container == null && ((isWriteStage || isCombinedStage)
- || cmdType == ContainerProtos.Type.PutSmallFile)) {
+ || cmdType == Type.PutSmallFile)) {
// If container does not exist, create one for WriteChunk and
// PutSmallFile request
responseProto = createContainer(msg);
@@ -317,7 +320,7 @@ public class HddsDispatcher implements ContainerDispatcher,
Auditor {
// state here.
Result result = responseProto.getResult();
- if (cmdType == ContainerProtos.Type.CreateContainer
+ if (cmdType == Type.CreateContainer
&& result == Result.SUCCESS && dispatcherContext != null) {
Preconditions.checkNotNull(dispatcherContext.getContainer2BCSIDMap());
container2BCSIDMap.putIfAbsent(containerID, Long.valueOf(0));
@@ -374,9 +377,9 @@ public class HddsDispatcher implements ContainerDispatcher,
Auditor {
}
private void updateBCSID(Container container,
- DispatcherContext dispatcherContext, ContainerProtos.Type cmdType) {
- if (dispatcherContext != null && (cmdType == ContainerProtos.Type.PutBlock
- || cmdType == ContainerProtos.Type.PutSmallFile)) {
+ DispatcherContext dispatcherContext, Type cmdType) {
+ if (dispatcherContext != null && (cmdType == Type.PutBlock
+ || cmdType == Type.PutSmallFile)) {
Preconditions.checkNotNull(container);
long bcsID = container.getBlockCommitSequenceId();
long containerId = container.getContainerData().getContainerID();
@@ -406,7 +409,7 @@ public class HddsDispatcher implements ContainerDispatcher,
Auditor {
ContainerCommandRequestProto.Builder requestBuilder =
ContainerCommandRequestProto.newBuilder()
- .setCmdType(ContainerProtos.Type.CreateContainer)
+ .setCmdType(Type.CreateContainer)
.setContainerID(containerRequest.getContainerID())
.setCreateContainer(createRequest.build())
.setPipelineID(containerRequest.getPipelineID())
@@ -448,7 +451,7 @@ public class HddsDispatcher implements ContainerDispatcher,
Auditor {
return;
}
ContainerType containerType = container.getContainerType();
- ContainerProtos.Type cmdType = msg.getCmdType();
+ Type cmdType = msg.getCmdType();
AuditAction action =
ContainerCommandRequestPBHelper.getAuditAction(cmdType);
EventType eventType = getEventType(msg);
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 f27f4f3..740842d 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
@@ -50,7 +50,7 @@ public class
StorageContainerDatanodeProtocolServerSideTranslatorPB
private final StorageContainerDatanodeProtocol impl;
private final OzoneProtocolMessageDispatcher<SCMDatanodeRequest,
- SCMDatanodeResponse> dispatcher;
+ SCMDatanodeResponse, ProtocolMessageEnum> dispatcher;
public StorageContainerDatanodeProtocolServerSideTranslatorPB(
StorageContainerDatanodeProtocol impl,
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 c239c0d..ba6f15d 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
@@ -21,7 +21,6 @@ import
org.apache.hadoop.hdds.function.FunctionWithServiceException;
import org.apache.hadoop.hdds.tracing.TracingUtil;
import org.apache.hadoop.hdds.utils.ProtocolMessageMetrics;
-import com.google.protobuf.ProtocolMessageEnum;
import com.google.protobuf.ServiceException;
import io.opentracing.Span;
import org.slf4j.Logger;
@@ -34,17 +33,17 @@ import org.slf4j.Logger;
* 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> {
+public class OzoneProtocolMessageDispatcher<REQUEST, RESPONSE, TYPE> {
private String serviceName;
- private final ProtocolMessageMetrics<ProtocolMessageEnum>
+ private final ProtocolMessageMetrics<TYPE>
protocolMessageMetrics;
private Logger logger;
public OzoneProtocolMessageDispatcher(String serviceName,
- ProtocolMessageMetrics<ProtocolMessageEnum> protocolMessageMetrics,
+ ProtocolMessageMetrics<TYPE> protocolMessageMetrics,
Logger logger) {
this.serviceName = serviceName;
this.protocolMessageMetrics = protocolMessageMetrics;
@@ -54,7 +53,7 @@ public class OzoneProtocolMessageDispatcher<REQUEST,
RESPONSE> {
public RESPONSE processRequest(
REQUEST request,
FunctionWithServiceException<REQUEST, RESPONSE> methodCall,
- ProtocolMessageEnum type,
+ TYPE type,
String traceId) throws ServiceException {
Span span = TracingUtil.importAndCreateSpan(type.toString(), traceId);
try {
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 666123e..9388a33 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
@@ -16,19 +16,14 @@
*/
package org.apache.hadoop.hdds.scm.protocol;
-import com.google.protobuf.RpcController;
-import com.google.protobuf.ServiceException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.IOException;
+import org.apache.hadoop.hdds.protocol.SCMSecurityProtocol;
import org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetCertResponseProto;
+import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetCertResponseProto.ResponseCode;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetCertificateRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetDataNodeCertRequestProto;
-import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetCertResponseProto.ResponseCode;
-import org.apache.hadoop.hdds.protocol.SCMSecurityProtocol;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetOMCertRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMSecurityRequest;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMSecurityResponse;
@@ -37,6 +32,12 @@ import
org.apache.hadoop.hdds.protocolPB.SCMSecurityProtocolPB;
import org.apache.hadoop.hdds.server.OzoneProtocolMessageDispatcher;
import org.apache.hadoop.hdds.utils.ProtocolMessageMetrics;
+import com.google.protobuf.ProtocolMessageEnum;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.ServiceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* This class is the server-side translator that forwards requests received on
* {@link SCMSecurityProtocolPB} to the {@link
@@ -51,7 +52,7 @@ public class SCMSecurityProtocolServerSideTranslatorPB
private final SCMSecurityProtocol impl;
private OzoneProtocolMessageDispatcher<SCMSecurityRequest,
- SCMSecurityResponse>
+ SCMSecurityResponse, ProtocolMessageEnum>
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 fb07351..a04e168 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
@@ -68,7 +68,7 @@ public final class
ScmBlockLocationProtocolServerSideTranslatorPB
.getLogger(ScmBlockLocationProtocolServerSideTranslatorPB.class);
private final OzoneProtocolMessageDispatcher<SCMBlockLocationRequest,
- SCMBlockLocationResponse>
+ SCMBlockLocationResponse, ProtocolMessageEnum>
dispatcher;
/**
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 d07cc56..d5496b4 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
@@ -26,7 +26,6 @@ import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.hdds.annotation.InterfaceAudience;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos;
-import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.PipelineResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ActivatePipelineRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ActivatePipelineResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ClosePipelineRequestProto;
@@ -39,10 +38,10 @@ import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolPro
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ForceExitSafeModeResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerResponseProto;
-import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerWithPipelineRequestProto;
-import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerWithPipelineResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerWithPipelineBatchRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerWithPipelineBatchResponseProto;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerWithPipelineRequestProto;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetContainerWithPipelineResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetPipelineRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.GetPipelineResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.InSafeModeRequestProto;
@@ -50,10 +49,11 @@ import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolPro
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ListPipelineRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ListPipelineResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.NodeQueryResponseProto;
-import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMCloseContainerRequestProto;
-import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMCloseContainerResponseProto;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.PipelineResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ReplicationManagerStatusRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.ReplicationManagerStatusResponseProto;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMCloseContainerRequestProto;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMCloseContainerResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMDeleteContainerRequestProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMDeleteContainerResponseProto;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMListContainerRequestProto;
@@ -79,11 +79,10 @@ import org.apache.hadoop.hdds.utils.ProtocolMessageMetrics;
import com.google.protobuf.ProtocolMessageEnum;
import com.google.protobuf.RpcController;
import com.google.protobuf.ServiceException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import static
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.PipelineResponseProto.Error.errorPipelineAlreadyExists;
import static
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.PipelineResponseProto.Error.success;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This class is the server-side translator that forwards requests received on
@@ -101,7 +100,7 @@ public final class
StorageContainerLocationProtocolServerSideTranslatorPB
private final StorageContainerLocationProtocol impl;
private OzoneProtocolMessageDispatcher<ScmContainerLocationRequest,
- ScmContainerLocationResponse>
+ ScmContainerLocationResponse, ProtocolMessageEnum>
dispatcher;
/**
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightPoint.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightPoint.java
index b3c64ae..2789d03 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightPoint.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightPoint.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.ozone.insight;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -28,11 +29,8 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.hdds.scm.cli.ContainerOperationClient;
import org.apache.hadoop.hdds.scm.client.ScmClient;
-import org.apache.hadoop.hdds.server.http.PrometheusMetricsSink;
import org.apache.hadoop.ozone.insight.LoggerSource.Level;
-import com.google.protobuf.ProtocolMessageEnum;
-
/**
* Default implementation of Insight point logic.
*/
@@ -42,7 +40,7 @@ public abstract class BaseInsightPoint implements
InsightPoint {
* List the related metrics.
*/
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
return new ArrayList<>();
}
@@ -91,21 +89,35 @@ public abstract class BaseInsightPoint implements
InsightPoint {
return verbose ? Level.TRACE : Level.DEBUG;
}
+ public void addProtocolMessageMetrics(
+ List<MetricGroupDisplay> metrics,
+ String prefix,
+ Component.Type type,
+ Object[] types
+ ) {
+ addProtocolMessageMetrics(metrics, prefix, new Component(type), types);
+ }
+
/**
* Default metrics for any message type based RPC ServerSide translators.
*/
- public void addProtocolMessageMetrics(List<MetricGroupDisplay> metrics,
+ public void addProtocolMessageMetrics(
+ List<MetricGroupDisplay> metrics,
String prefix,
- Component.Type component,
- ProtocolMessageEnum[] types) {
+ Component component,
+ Object[] types
+ ) {
MetricGroupDisplay messageTypeCounters =
new MetricGroupDisplay(component, "Message type counters");
- for (ProtocolMessageEnum type : types) {
+ for (Object type : types) {
String typeName = type.toString();
- MetricDisplay metricDisplay = new MetricDisplay("Number of " + typeName,
- prefix + "_" + PrometheusMetricsSink
- .normalizeName(typeName));
+
+ Map<String, String> typeFilter = new HashMap<>();
+ typeFilter.put("type", typeName);
+ MetricDisplay metricDisplay =
+ new MetricDisplay("Number of " + typeName + " calls",
+ prefix + "_counter", typeFilter);
messageTypeCounters.addMetrics(metricDisplay);
}
metrics.add(messageTypeCounters);
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightSubCommand.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightSubCommand.java
index 8101531..73937c5 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightSubCommand.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/BaseInsightSubCommand.java
@@ -25,6 +25,7 @@ import org.apache.hadoop.hdds.HddsUtils;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.ozone.insight.Component.Type;
+import org.apache.hadoop.ozone.insight.datanode.DatanodeDispatcherInsight;
import org.apache.hadoop.ozone.insight.datanode.RatisInsight;
import org.apache.hadoop.ozone.insight.om.KeyManagerInsight;
import org.apache.hadoop.ozone.insight.om.OmProtocolInsight;
@@ -98,6 +99,8 @@ public class BaseInsightSubCommand {
insights.put("om.key-manager", new KeyManagerInsight());
insights.put("om.protocol.client", new OmProtocolInsight());
insights.put("datanode.pipeline", new RatisInsight(configuration));
+ insights.put("datanode.dispatcher",
+ new DatanodeDispatcherInsight(configuration));
return insights;
}
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/InsightPoint.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/InsightPoint.java
index 517ba57..e46d675 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/InsightPoint.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/InsightPoint.java
@@ -39,7 +39,7 @@ public interface InsightPoint {
/**
* List of the related metrics.
*/
- List<MetricGroupDisplay> getMetrics();
+ List<MetricGroupDisplay> getMetrics(Map<String, String> filters);
/**
* List of the configuration classes.
@@ -47,7 +47,7 @@ public interface InsightPoint {
List<Class> getConfigurationClasses();
/**
- * Decide if the specific log should be displayed or not..
+ * Decide if the specific log should be displayed or not.
*/
boolean filterLog(Map<String, String> filters, String logLine);
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricGroupDisplay.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricGroupDisplay.java
index 08fd60c..eb74169 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricGroupDisplay.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricGroupDisplay.java
@@ -42,9 +42,9 @@ public class MetricGroupDisplay {
*/
private String description;
- public MetricGroupDisplay(Component component, String description) {
+ public MetricGroupDisplay(Component component, String metricName) {
this.component = component;
- this.description = description;
+ this.description = metricName;
}
public MetricGroupDisplay(Type componentType, String metricName) {
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricsSubCommand.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricsSubCommand.java
index d320c82..44e0b7b 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricsSubCommand.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/MetricsSubCommand.java
@@ -17,25 +17,28 @@
*/
package org.apache.hadoop.ozone.insight;
-import org.apache.hadoop.hdds.cli.HddsVersionProvider;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
-
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.HttpClientBuilder;
-import picocli.CommandLine;
-
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
+import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
-import java.util.*;
+import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
import java.util.concurrent.Callable;
import java.util.stream.Collectors;
+import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.HttpClientBuilder;
+import picocli.CommandLine;
+
/**
* Command line interface to show metrics for a specific component.
*/
@@ -48,6 +51,10 @@ import java.util.stream.Collectors;
public class MetricsSubCommand extends BaseInsightSubCommand
implements Callable<Void> {
+ @CommandLine.Option(names = "-f", description = "Define filters to scope "
+ + "the output (eg. -f datanode=_1234_datanode_id)")
+ private Map<String, String> filters;
+
@CommandLine.Parameters(description = "Name of the insight point (use list "
+ "to check the available options)")
private String insightName;
@@ -59,13 +66,15 @@ public class MetricsSubCommand extends BaseInsightSubCommand
InsightPoint insight =
getInsight(conf, insightName);
Set<Component> sources =
- insight.getMetrics().stream().map(MetricGroupDisplay::getComponent)
+ insight.getMetrics(filters)
+ .stream()
+ .map(MetricGroupDisplay::getComponent)
.collect(Collectors.toSet());
Map<Component, List<String>> metrics = getMetrics(conf, sources);
System.out.println(
"Metrics for `" + insightName + "` (" + insight.getDescription() +
")");
System.out.println();
- for (MetricGroupDisplay group : insight.getMetrics()) {
+ for (MetricGroupDisplay group : insight.getMetrics(filters)) {
System.out.println(group.getDescription());
System.out.println();
for (MetricDisplay display : group.getMetrics()) {
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/DatanodeDispatcherInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/DatanodeDispatcherInsight.java
new file mode 100644
index 0000000..b717349
--- /dev/null
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/DatanodeDispatcherInsight.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.hadoop.ozone.insight.datanode;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos;
+import org.apache.hadoop.hdds.server.http.HttpConfig;
+import org.apache.hadoop.ozone.OzoneConfigKeys;
+import org.apache.hadoop.ozone.container.common.impl.HddsDispatcher;
+import org.apache.hadoop.ozone.insight.BaseInsightPoint;
+import org.apache.hadoop.ozone.insight.Component;
+import org.apache.hadoop.ozone.insight.Component.Type;
+import org.apache.hadoop.ozone.insight.InsightPoint;
+import org.apache.hadoop.ozone.insight.LoggerSource;
+import org.apache.hadoop.ozone.insight.MetricGroupDisplay;
+
+import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_DATANODE_HTTPS_BIND_PORT_DEFAULT;
+import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_DATANODE_HTTP_BIND_PORT_DEFAULT;
+
+/**
+ * Insight definition for HddsDispatcher.
+ */
+public class DatanodeDispatcherInsight extends BaseInsightPoint
+ implements InsightPoint {
+
+ private static final String DATANODE_FILTER = "datanode";
+
+ private OzoneConfiguration conf;
+
+ public DatanodeDispatcherInsight(
+ OzoneConfiguration conf
+ ) {
+ this.conf = conf;
+ }
+
+ public Component getDatanodeFromFilter(Map<String, String> filters) {
+ if (filters == null || !filters.containsKey(DATANODE_FILTER)) {
+ throw new IllegalArgumentException("datanode"
+ + " filter should be specified (-f " + "datanode"
+ + "=<host_or_ip)");
+ }
+
+ String policyStr = conf.get(OzoneConfigKeys.OZONE_HTTP_POLICY_KEY,
+ OzoneConfigKeys.OZONE_HTTP_POLICY_DEFAULT);
+ HttpConfig.Policy policy = HttpConfig.Policy.fromString(policyStr);
+
+ final int port = policy.isHttpEnabled() ?
+ HDDS_DATANODE_HTTP_BIND_PORT_DEFAULT :
+ HDDS_DATANODE_HTTPS_BIND_PORT_DEFAULT;
+
+ return new Component(Type.DATANODE, null,
+ filters.get("datanode"), port);
+ }
+
+ @Override
+ public List<LoggerSource> getRelatedLoggers(
+ boolean verbose,
+ Map<String, String> filters
+ ) {
+ List<LoggerSource> result = new ArrayList<>();
+ result.add(new LoggerSource(
+ getDatanodeFromFilter(filters),
+ HddsDispatcher.class.getCanonicalName(),
+ defaultLevel(verbose)));
+ return result;
+ }
+
+ @Override
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
+ List<MetricGroupDisplay> result = new ArrayList<>();
+
+ addProtocolMessageMetrics(result, "hdds_dispatcher",
+ getDatanodeFromFilter(filters),
+ ContainerProtos.Type.values());
+
+ return result;
+ }
+
+ @Override
+ public String getDescription() {
+ return "Datanode request dispatcher (after Ratis replication)";
+ }
+
+ @Override
+ public boolean filterLog(Map<String, String> filters, String logLine) {
+ return true;
+ }
+}
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/PipelineComponentUtil.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/PipelineComponentUtil.java
new file mode 100644
index 0000000..c309d62
--- /dev/null
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/PipelineComponentUtil.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.hadoop.ozone.insight.datanode;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+
+import org.apache.hadoop.hdds.protocol.DatanodeDetails;
+import org.apache.hadoop.hdds.scm.client.ScmClient;
+import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
+import org.apache.hadoop.ozone.insight.Component;
+import org.apache.hadoop.ozone.insight.Component.Type;
+
+/**
+ * Utilities to handle pipelines.
+ */
+public final class PipelineComponentUtil {
+
+ public static final String PIPELINE_FILTER = "pipeline";
+
+ private PipelineComponentUtil() {
+ }
+
+ public static String getPipelineIdFromFilters(Map<String, String> filters) {
+ if (filters == null || !filters.containsKey(PIPELINE_FILTER)) {
+ throw new IllegalArgumentException(PIPELINE_FILTER
+ + " filter should be specified (-f " + PIPELINE_FILTER
+ + "=<pipelineid)");
+ }
+
+ return filters.get(PIPELINE_FILTER);
+ }
+
+ /**
+ * Execute a function with each of the datanodes.
+ */
+ public static void withDatanodesFromPipeline(
+ ScmClient scmClient,
+ String pipelineId,
+ Function<Component, Void> func
+ ) throws IOException {
+
+ Optional<Pipeline> pipelineSelection = scmClient.listPipelines()
+ .stream()
+ .filter(
+ pipline -> pipline.getId().getId().toString().equals(pipelineId))
+ .findFirst();
+
+ if (!pipelineSelection.isPresent()) {
+ throw new IllegalArgumentException("No such multi-node pipeline.");
+ }
+ Pipeline pipeline = pipelineSelection.get();
+ for (DatanodeDetails datanode : pipeline.getNodes()) {
+ Component dn =
+ new Component(Type.DATANODE, datanode.getUuid().toString(),
+ datanode.getHostName(), 9882);
+ func.apply(dn);
+ }
+
+ }
+}
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/RatisInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/RatisInsight.java
index 94f1ddd..24238c2 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/RatisInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/RatisInsight.java
@@ -22,24 +22,21 @@ import java.io.UncheckedIOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
-import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.scm.client.ScmClient;
-import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.ozone.insight.BaseInsightPoint;
-import org.apache.hadoop.ozone.insight.Component;
-import org.apache.hadoop.ozone.insight.Component.Type;
import org.apache.hadoop.ozone.insight.InsightPoint;
import org.apache.hadoop.ozone.insight.LoggerSource;
+import static
org.apache.hadoop.ozone.insight.datanode.PipelineComponentUtil.getPipelineIdFromFilters;
+import static
org.apache.hadoop.ozone.insight.datanode.PipelineComponentUtil.withDatanodesFromPipeline;
+
/**
- * Insight definition for datanode/pipline metrics.
+ * Insight definition for datanode/pipeline metrics.
*/
public class RatisInsight extends BaseInsightPoint implements InsightPoint {
- public static final String PIPELINE_FILTER = "pipeline";
private OzoneConfiguration conf;
public RatisInsight(OzoneConfiguration conf) {
@@ -49,38 +46,22 @@ public class RatisInsight extends BaseInsightPoint
implements InsightPoint {
@Override
public List<LoggerSource> getRelatedLoggers(boolean verbose,
Map<String, String> filters) {
- if (filters == null || !filters.containsKey(PIPELINE_FILTER)) {
- throw new IllegalArgumentException(PIPELINE_FILTER
- + " filter should be specified (-f " + PIPELINE_FILTER
- + "=<pipelineid)");
- }
- String pipelineId = filters.get(PIPELINE_FILTER);
List<LoggerSource> result = new ArrayList<>();
try (ScmClient scmClient = createScmClient(conf)) {
- Optional<Pipeline> pipelineSelection = scmClient.listPipelines()
- .stream()
- .filter(
- pipline -> pipline.getId().getId().toString().equals(pipelineId))
- .findFirst();
-
- if (!pipelineSelection.isPresent()) {
- throw new IllegalArgumentException("No such multi-node pipeline.");
- }
- Pipeline pipeline = pipelineSelection.get();
- for (DatanodeDetails datanode : pipeline.getNodes()) {
- Component dn =
- new Component(Type.DATANODE, datanode.getUuid().toString(),
- datanode.getHostName(), 9882);
- result
- .add(new LoggerSource(dn, "org.apache.ratis.server.impl",
- defaultLevel(verbose)));
- }
+ withDatanodesFromPipeline(scmClient,
+ getPipelineIdFromFilters(filters),
+ dn -> {
+ result
+ .add(new LoggerSource(dn,
+ "org.apache.ratis.server.impl",
+ defaultLevel(verbose)));
+ return null;
+ });
} catch (IOException e) {
throw new UncheckedIOException("Can't enumerate required logs", e);
}
-
return result;
}
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/KeyManagerInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/KeyManagerInsight.java
index f4aacf7..1710de2 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/KeyManagerInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/KeyManagerInsight.java
@@ -34,7 +34,7 @@ import org.apache.hadoop.ozone.om.KeyManagerImpl;
public class KeyManagerInsight extends BaseInsightPoint {
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> display = new ArrayList<>();
MetricGroupDisplay state =
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/OmProtocolInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/OmProtocolInsight.java
index 8c25430..e98818b 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/OmProtocolInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/om/OmProtocolInsight.java
@@ -46,7 +46,7 @@ public class OmProtocolInsight extends BaseInsightPoint {
}
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> metrics = new ArrayList<>();
Map<String, String> filter = new HashMap<>();
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/NodeManagerInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/NodeManagerInsight.java
index c58db4b..a6ba5e3 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/NodeManagerInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/NodeManagerInsight.java
@@ -44,7 +44,7 @@ public class NodeManagerInsight extends BaseInsightPoint {
}
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> display = new ArrayList<>();
MetricGroupDisplay nodes =
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ReplicaManagerInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ReplicaManagerInsight.java
index f15aad1..6d607b7 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ReplicaManagerInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ReplicaManagerInsight.java
@@ -42,7 +42,7 @@ public class ReplicaManagerInsight extends BaseInsightPoint {
}
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> display = new ArrayList<>();
return display;
}
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolBlockLocationInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolBlockLocationInsight.java
index 1a90b78..3aac753 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolBlockLocationInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolBlockLocationInsight.java
@@ -50,7 +50,7 @@ public class ScmProtocolBlockLocationInsight extends
BaseInsightPoint {
}
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> metrics = new ArrayList<>();
Map<String, String> filter = new HashMap<>();
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolContainerLocationInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolContainerLocationInsight.java
index a57dfd0..0c8228b 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolContainerLocationInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolContainerLocationInsight.java
@@ -50,7 +50,7 @@ public class ScmProtocolContainerLocationInsight extends
BaseInsightPoint {
}
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> metrics = new ArrayList<>();
Map<String, String> filter = new HashMap<>();
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolDatanodeInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolDatanodeInsight.java
index 58e95c7..117df43 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolDatanodeInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolDatanodeInsight.java
@@ -51,7 +51,7 @@ public class ScmProtocolDatanodeInsight extends
BaseInsightPoint {
}
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> metrics = new ArrayList<>();
Map<String, String> filter = new HashMap<>();
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolSecurityInsight.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolSecurityInsight.java
index 5f95ff1..aed8baf 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolSecurityInsight.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/scm/ScmProtocolSecurityInsight.java
@@ -50,7 +50,7 @@ public class ScmProtocolSecurityInsight extends
BaseInsightPoint {
}
@Override
- public List<MetricGroupDisplay> getMetrics() {
+ public List<MetricGroupDisplay> getMetrics(Map<String, String> filters) {
List<MetricGroupDisplay> metrics = new ArrayList<>();
Map<String, String> filter = new HashMap<>();
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 d64db61..73277e0 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
@@ -59,8 +59,8 @@ public class OzoneManagerProtocolServerSideTranslatorPB
implements
private final OzoneManager ozoneManager;
private final OzoneManagerDoubleBuffer ozoneManagerDoubleBuffer;
private final AtomicLong transactionIndex = new AtomicLong(0L);
- private final OzoneProtocolMessageDispatcher<OMRequest, OMResponse>
- dispatcher;
+ private final OzoneProtocolMessageDispatcher<OMRequest, OMResponse,
+ ProtocolMessageEnum> dispatcher;
/**
* Constructs an instance of the server handler.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]