slfan1989 commented on code in PR #4963:
URL: https://github.com/apache/hadoop/pull/4963#discussion_r988615315


##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/federation/FederationStateStoreService.java:
##########
@@ -253,129 +259,378 @@ public Version loadVersion() {
   @Override
   public GetSubClusterPolicyConfigurationResponse getPolicyConfiguration(
       GetSubClusterPolicyConfigurationRequest request) throws YarnException {
-    return stateStoreClient.getPolicyConfiguration(request);
+    try {
+      long startTime = clock.getTime();
+      GetSubClusterPolicyConfigurationResponse response =
+          stateStoreClient.getPolicyConfiguration(request);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("getPolicyConfiguration error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public SetSubClusterPolicyConfigurationResponse setPolicyConfiguration(
       SetSubClusterPolicyConfigurationRequest request) throws YarnException {
-    return stateStoreClient.setPolicyConfiguration(request);
+    try {
+      long startTime = clock.getTime();
+      SetSubClusterPolicyConfigurationResponse response =
+          stateStoreClient.setPolicyConfiguration(request);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("setPolicyConfiguration error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public GetSubClusterPoliciesConfigurationsResponse getPoliciesConfigurations(
       GetSubClusterPoliciesConfigurationsRequest request) throws YarnException 
{
-    return stateStoreClient.getPoliciesConfigurations(request);
+    try {
+      long startTime = clock.getTime();
+      GetSubClusterPoliciesConfigurationsResponse response =
+          stateStoreClient.getPoliciesConfigurations(request);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("getPoliciesConfigurations error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public SubClusterRegisterResponse registerSubCluster(
       SubClusterRegisterRequest registerSubClusterRequest)
       throws YarnException {
-    return stateStoreClient.registerSubCluster(registerSubClusterRequest);
+    try {
+      long startTime = clock.getTime();
+      SubClusterRegisterResponse response =
+          stateStoreClient.registerSubCluster(registerSubClusterRequest);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("registerSubCluster error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public SubClusterDeregisterResponse deregisterSubCluster(
       SubClusterDeregisterRequest subClusterDeregisterRequest)
       throws YarnException {
-    return stateStoreClient.deregisterSubCluster(subClusterDeregisterRequest);
+    try {
+      long startTime = clock.getTime();
+      SubClusterDeregisterResponse response =
+          stateStoreClient.deregisterSubCluster(subClusterDeregisterRequest);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("deregisterSubCluster error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public SubClusterHeartbeatResponse subClusterHeartbeat(
       SubClusterHeartbeatRequest subClusterHeartbeatRequest)
       throws YarnException {
-    return stateStoreClient.subClusterHeartbeat(subClusterHeartbeatRequest);
+    try {
+      long startTime = clock.getTime();
+      SubClusterHeartbeatResponse response =
+          stateStoreClient.subClusterHeartbeat(subClusterHeartbeatRequest);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("subClusterHeartbeat error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public GetSubClusterInfoResponse getSubCluster(
       GetSubClusterInfoRequest subClusterRequest) throws YarnException {
-    return stateStoreClient.getSubCluster(subClusterRequest);
+    try {
+      long startTime = clock.getTime();
+      GetSubClusterInfoResponse response =
+          stateStoreClient.getSubCluster(subClusterRequest);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("getSubCluster error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public GetSubClustersInfoResponse getSubClusters(
       GetSubClustersInfoRequest subClustersRequest) throws YarnException {
-    return stateStoreClient.getSubClusters(subClustersRequest);
+    try {
+      long startTime = clock.getTime();
+      GetSubClustersInfoResponse response =
+          stateStoreClient.getSubClusters(subClustersRequest);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("getSubClusters error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public AddApplicationHomeSubClusterResponse addApplicationHomeSubCluster(
       AddApplicationHomeSubClusterRequest request) throws YarnException {
-    return stateStoreClient.addApplicationHomeSubCluster(request);
+    try {
+      long startTime = clock.getTime();
+      AddApplicationHomeSubClusterResponse response =
+          stateStoreClient.addApplicationHomeSubCluster(request);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("addApplicationHomeSubCluster error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public UpdateApplicationHomeSubClusterResponse 
updateApplicationHomeSubCluster(
       UpdateApplicationHomeSubClusterRequest request) throws YarnException {
-    return stateStoreClient.updateApplicationHomeSubCluster(request);
+    try {
+      long startTime = clock.getTime();
+      UpdateApplicationHomeSubClusterResponse response =
+          stateStoreClient.updateApplicationHomeSubCluster(request);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("updateApplicationHomeSubCluster error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public GetApplicationHomeSubClusterResponse getApplicationHomeSubCluster(
       GetApplicationHomeSubClusterRequest request) throws YarnException {
-    return stateStoreClient.getApplicationHomeSubCluster(request);
+    try {
+      long startTime = clock.getTime();
+      GetApplicationHomeSubClusterResponse response =
+          stateStoreClient.getApplicationHomeSubCluster(request);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("getApplicationHomeSubCluster error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public GetApplicationsHomeSubClusterResponse getApplicationsHomeSubCluster(
       GetApplicationsHomeSubClusterRequest request) throws YarnException {
-    return stateStoreClient.getApplicationsHomeSubCluster(request);
+    try {
+      long startTime = clock.getTime();
+      GetApplicationsHomeSubClusterResponse response =
+           stateStoreClient.getApplicationsHomeSubCluster(request);
+      long stopTime = clock.getTime();
+      FederationStateStoreServiceMetrics.succeededStateStoreServiceCall(
+          stopTime - startTime);
+      return response;
+    } catch (YarnException e) {
+      LOG.error("getApplicationsHomeSubCluster error.", e);
+      FederationStateStoreServiceMetrics.failedStateStoreServiceCall();
+      throw e;
+    }
   }
 
   @Override
   public DeleteApplicationHomeSubClusterResponse 
deleteApplicationHomeSubCluster(
       DeleteApplicationHomeSubClusterRequest request) throws YarnException {
-    return stateStoreClient.deleteApplicationHomeSubCluster(request);
+    try {

Review Comment:
   Thanks for your suggestion, I will refactor this part of the code to use a 
generic method instead.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to