You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2015/05/17 22:29:55 UTC
ambari git commit: AMBARI-11114. Verify metrics for HDFS, YARN,
HBASE are supported. (jaimin)
Repository: ambari
Updated Branches:
refs/heads/trunk 421770b27 -> 6b873569d
AMBARI-11114. Verify metrics for HDFS, YARN, HBASE are supported. (jaimin)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6b873569
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6b873569
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6b873569
Branch: refs/heads/trunk
Commit: 6b873569d1808c5aca7f60ab3aac913e3b50960a
Parents: 421770b
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Sun May 17 13:29:26 2015 -0700
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Sun May 17 13:29:26 2015 -0700
----------------------------------------------------------------------
.../HBASE/0.96.0.2.0/metrics.json | 100 +++++++++++++++
.../common-services/HDFS/2.1.0.2.0/metrics.json | 127 ++++++++-----------
.../YARN/2.1.0.2.0/YARN_metrics.json | 40 ++++++
.../ambari/server/stack/StackManagerTest.java | 46 +++++++
4 files changed, 242 insertions(+), 71 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/6b873569/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
index 8d08d9b..efaca33 100644
--- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
+++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/metrics.json
@@ -1379,6 +1379,56 @@
"pointInTime": true,
"temporal": false
},
+ "metrics/hbase/regionserver/ScanNext_num_ops": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.ScanNext_num_ops",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Increment_num_ops": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Increment_num_ops",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Append_num_ops": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Append_num_ops",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/ScanNext_95th_percentile": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.ScanNext_95th_percentile",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Append_95th_percentile": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Append_95th_percentile",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Increment_95th_percentile": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Increment_95th_percentile",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/updatesBlockedTime": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.updatesBlockedTime",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/IPC/numActiveHandler": {
+ "metric": "Hadoop:service=HBase,name=IPC,sub=IPC.numActiveHandler",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/IPC/numCallsInGeneralQueue": {
+ "metric": "Hadoop:service=HBase,name=IPC,sub=IPC.numCallsInGeneralQueue",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/IPC/numOpenConnections": {
+ "metric": "Hadoop:service=HBase,name=IPC,sub=IPC.numOpenConnections",
+ "pointInTime": true,
+ "temporal": false
+ },
"metrics/hbase/regionserver/slowAppendCount": {
"metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.slowAppendCount",
"pointInTime": true,
@@ -3023,6 +3073,56 @@
"pointInTime": true,
"temporal": false
},
+ "metrics/hbase/regionserver/ScanNext_num_ops": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.ScanNext_num_ops",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Increment_num_ops": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Increment_num_ops",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Append_num_ops": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Append_num_ops",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/ScanNext_95th_percentile": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.ScanNext_95th_percentile",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Append_95th_percentile": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Append_95th_percentile",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/Increment_95th_percentile": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Increment_95th_percentile",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/regionserver/updatesBlockedTime": {
+ "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.updatesBlockedTime",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/IPC/numActiveHandler": {
+ "metric": "Hadoop:service=HBase,name=IPC,sub=IPC.numActiveHandler",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/IPC/numCallsInGeneralQueue": {
+ "metric": "Hadoop:service=HBase,name=IPC,sub=IPC.numCallsInGeneralQueue",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/hbase/IPC/numOpenConnections": {
+ "metric": "Hadoop:service=HBase,name=IPC,sub=IPC.numOpenConnections",
+ "pointInTime": true,
+ "temporal": false
+ },
"metrics/hbase/regionserver/slowAppendCount": {
"metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.slowAppendCount",
"pointInTime": true,
http://git-wip-us.apache.org/repos/asf/ambari/blob/6b873569/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
index 19ba890..d155e7e 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metrics.json
@@ -1156,7 +1156,7 @@
"temporal": false
},
"metrics/rpc/NumOpenConnections": {
- "metric": "Hadoop:service=NameNode,name=RpcActivity.NumOpenConnections",
+ "metric": "Hadoop:service=NameNode,name=RpcActivityForPort8020.NumOpenConnections",
"pointInTime": true,
"temporal": false
},
@@ -1355,6 +1355,31 @@
"metric": "Hadoop:service=NameNode,name=FSNamesystem.CapacityNonDFSUsed",
"pointInTime": true,
"temporal": false
+ },
+ "metrics/jvm/GcTimeMillisConcurrentMarkSweep": {
+ "metric": "Hadoop:service=NameNode,name=JvmMetrics.GcTimeMillisConcurrentMarkSweep",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/jvm/GcCountConcurrentMarkSweep": {
+ "metric": "Hadoop:service=NameNode,name=JvmMetrics.GcCountConcurrentMarkSweep",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/rpc/RpcQueueTimeAvgTime": {
+ "metric": "Hadoop:service=NameNode,name=RpcActivityForPort8020.RpcQueueTimeAvgTime",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/rpc/RpcProcessingTimeAvgTime": {
+ "metric": "Hadoop:service=NameNode,name=RpcActivityForPort8020.RpcProcessingTimeAvgTime",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/dfs/namenode/CorruptFiles": {
+ "metric": "Hadoop:service=NameNode,name=NameNodeInfo.CorruptFiles",
+ "pointInTime": true,
+ "temporal": false
}
}
}
@@ -2430,7 +2455,7 @@
"temporal": false
},
"metrics/rpc/RpcProcessingTime_avg_time": {
- "metric": "Hadoop:service=NameNode,name=RpcActivity.RpcProcessingTimeAvgTime",
+ "metric": "Hadoop:service=NameNode,name=RpcActivityForPort8020.RpcProcessingTimeAvgTime",
"pointInTime": true,
"temporal": false
},
@@ -2515,7 +2540,7 @@
"temporal": false
},
"metrics/rpc/RpcQueueTime_avg_time": {
- "metric": "Hadoop:service=NameNode,name=RpcActivity.RpcQueueTimeAvgTime",
+ "metric": "Hadoop:service=NameNode,name=RpcActivityForPort8020.RpcQueueTimeAvgTime",
"pointInTime": true,
"temporal": false
},
@@ -2585,7 +2610,7 @@
"temporal": false
},
"metrics/rpc/NumOpenConnections": {
- "metric": "Hadoop:service=NameNode,name=RpcActivity.NumOpenConnections",
+ "metric": "Hadoop:service=NameNode,name=RpcActivityForPort8020.NumOpenConnections",
"pointInTime": true,
"temporal": false
},
@@ -2769,6 +2794,21 @@
"metric": "Hadoop:service=NameNode,name=NameNodeInfo.TotalBlocks",
"pointInTime": true,
"temporal": false
+ },
+ "metrics/jvm/GcTimeMillisConcurrentMarkSweep": {
+ "metric": "Hadoop:service=NameNode,name=JvmMetrics.GcTimeMillisConcurrentMarkSweep",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/jvm/GcCountConcurrentMarkSweep": {
+ "metric": "Hadoop:service=NameNode,name=JvmMetrics.GcCountConcurrentMarkSweep",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/dfs/namenode/CorruptFiles": {
+ "metric": "Hadoop:service=NameNode,name=NameNodeInfo.CorruptFiles",
+ "pointInTime": true,
+ "temporal": false
}
}
}
@@ -6107,11 +6147,6 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/TotalLoad": {
- "metric": "Hadoop:service=DataNode,name=DataNode.TotalLoad",
- "pointInTime": true,
- "temporal": false
- },
"metrics/jvm/memHeapCommittedM": {
"metric": "Hadoop:service=DataNode,name=JvmMetrics.MemHeapCommittedM",
"pointInTime": true,
@@ -6122,11 +6157,6 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/BlockCapacity": {
- "metric": "Hadoop:service=DataNode,name=DataNode.BlockCapacity",
- "pointInTime": true,
- "temporal": false
- },
"metrics/jvm/threadsRunnable": {
"metric": "Hadoop:service=DataNode,name=JvmMetrics.ThreadsRunnable",
"pointInTime": true,
@@ -6202,11 +6232,6 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/FilesTotal": {
- "metric": "Hadoop:service=DataNode,name=DataNode.FilesTotal",
- "pointInTime": true,
- "temporal": false
- },
"metrics/jvm/memNonHeapUsedM": {
"metric": "Hadoop:service=DataNode,name=JvmMetrics.MemNonHeapUsedM",
"unit": "MB",
@@ -6228,16 +6253,6 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/CapacityTotalGB": {
- "metric": "Hadoop:service=DataNode,name=DataNode.CapacityTotalGB",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/dfs/FSNamesystem/ExcessBlocks": {
- "metric": "Hadoop:service=DataNode,name=DataNode.ExcessBlocks",
- "pointInTime": true,
- "temporal": false
- },
"metrics/rpcdetailed/getBlockLocations_num_ops": {
"metric": "Hadoop:service=DataNode,name=RpcDetailedActivity.getBlockLocations_num_ops",
"pointInTime": true,
@@ -6258,11 +6273,6 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/CapacityUsedGB": {
- "metric": "Hadoop:service=DataNode,name=DataNode.CapacityUsedGB",
- "pointInTime": true,
- "temporal": false
- },
"metrics/rpc/ReceivedBytes": {
"metric": "Hadoop:service=DataNode,name=RpcActivity.ReceivedBytes",
"pointInTime": true,
@@ -6314,21 +6324,11 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/ScheduledReplicationBlocks": {
- "metric": "Hadoop:service=DataNode,name=DataNode.ScheduledReplicationBlocks",
- "pointInTime": true,
- "temporal": false
- },
"metrics/jvm/threadsWaiting": {
"metric": "Hadoop:service=DataNode,name=JvmMetrics.ThreadsWaiting",
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/BlocksTotal": {
- "metric": "Hadoop:service=DataNode,name=DataNode.BlocksTotal",
- "pointInTime": true,
- "temporal": false
- },
"metrics/ugi/loginSuccess_num_ops": {
"metric": "Hadoop:service=NameNode,name=UgiMetrics.LoginSuccessNumOps",
"pointInTime": true,
@@ -6369,16 +6369,6 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/CapacityRemainingGB": {
- "metric": "Hadoop:service=DataNode,name=DataNode.CapacityRemainingGB",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/dfs/FSNamesystem/MissingBlocks": {
- "metric": "Hadoop:service=DataNode,name=DataNode.MissingBlocks",
- "pointInTime": true,
- "temporal": false
- },
"metrics/jvm/memNonHeapCommittedM": {
"metric": "Hadoop:service=DataNode,name=JvmMetrics.MemNonHeapCommittedM",
"pointInTime": true,
@@ -6389,11 +6379,6 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/CorruptBlocks": {
- "metric": "Hadoop:service=DataNode,name=DataNode.CorruptBlocks",
- "pointInTime": true,
- "temporal": false
- },
"metrics/dfs/FSNamesystem/Version": {
"metric": "Hadoop:service=DataNode,name=DataNodeInfo.Version",
"pointInTime": true,
@@ -6444,21 +6429,11 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/UnderReplicatedBlocks": {
- "metric": "Hadoop:service=DataNode,name=DataNode.UnderReplicatedBlocks",
- "pointInTime": true,
- "temporal": false
- },
"metrics/jvm/NonHeapMemoryMax": {
"metric": "java.lang:type=Memory.NonHeapMemoryUsage[max]",
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/PendingReplicationBlocks": {
- "metric": "Hadoop:service=DataNode,name=DataNode.PendingReplicationBlocks",
- "pointInTime": true,
- "temporal": false
- },
"metrics/rpcdetailed/create_avg_time": {
"metric": "Hadoop:service=DataNode,name=RpcDetailedActivity.create_avg_time",
"pointInTime": true,
@@ -6529,8 +6504,18 @@
"pointInTime": true,
"temporal": false
},
- "metrics/dfs/FSNamesystem/PendingDeletionBlocks": {
- "metric": "Hadoop:service=DataNode,name=DataNode.PendingDeletionBlocks",
+ "metrics/dfs/FSDatasetState/DfsUsed": {
+ "metric": "Hadoop:service=DataNode,name=FSDatasetState.DfsUsed",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/dfs/FSDatasetState/Capacity": {
+ "metric": "Hadoop:service=DataNode,name=FSDatasetState.Capacity",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/dfs/FSDatasetState/NumFailedVolumes": {
+ "metric": "Hadoop:service=DataNode,name=FSDatasetState.NumFailedVolumes",
"pointInTime": true,
"temporal": false
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/6b873569/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_metrics.json b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_metrics.json
index 15f2026..c856141 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_metrics.json
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_metrics.json
@@ -1061,6 +1061,46 @@
"metric": "Hadoop:service=NodeManager,name=JvmMetrics.ThreadsTerminated",
"pointInTime": true,
"temporal": false
+ },
+ "metrics/nodemanager/GoodLocalDirsDiskUtilizationPerc": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.GoodLocalDirsDiskUtilizationPerc",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/nodemanager/GoodLogDirsDiskUtilizationPerc": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.GoodLogDirsDiskUtilizationPerc",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/nodemanager/AllocatedGB": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.AllocatedGB",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/nodemanager/AllocatedVCores": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.AllocatedVCores",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/nodemanager/BadLocalDirs": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.BadLocalDirs",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/nodemanager/BadLogDirs": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.BadLogDirs",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/nodemanager/ContainersFailed": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.ContainersFailed",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/nodemanager/AllocatedContainers": {
+ "metric": "Hadoop:service=NodeManager,name=NodeManagerMetrics.AllocatedContainers",
+ "pointInTime": true,
+ "temporal": false
}
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/6b873569/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
index 4fbd736..1e76b6b 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
@@ -29,6 +29,8 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
+import java.io.FileReader;
+import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -36,6 +38,9 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.metadata.ActionMetadata;
import org.apache.ambari.server.orm.dao.MetainfoDAO;
@@ -47,6 +52,7 @@ import org.apache.ambari.server.state.PropertyInfo;
import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.ServiceOsSpecific;
import org.apache.ambari.server.state.StackInfo;
+import org.apache.ambari.server.state.stack.MetricDefinition;
import org.apache.ambari.server.state.stack.OsFamily;
import org.apache.commons.lang.StringUtils;
import org.junit.BeforeClass;
@@ -610,5 +616,45 @@ public class StackManagerTest {
stack.getKerberosDescriptorFileLocation());
}
+ @Test
+ public void testMetricsLoaded() throws Exception {
+
+ String stackRoot = ClassLoader.getSystemClassLoader().getResource("stacks").getPath().replace("test-classes","classes");
+ String commonServices = ClassLoader.getSystemClassLoader().getResource("common-services").getPath().replace("test-classes","classes");
+
+ MetainfoDAO metaInfoDao = createNiceMock(MetainfoDAO.class);
+ StackDAO stackDao = createNiceMock(StackDAO.class);
+ ActionMetadata actionMetadata = createNiceMock(ActionMetadata.class);
+ Configuration config = createNiceMock(Configuration.class);
+
+ expect(config.getSharedResourcesDirPath()).andReturn(
+ ClassLoader.getSystemClassLoader().getResource("").getPath()).anyTimes();
+
+ replay(config, metaInfoDao, stackDao, actionMetadata);
+
+ OsFamily osFamily = new OsFamily(config);
+
+ StackManager stackManager = new StackManager(new File(stackRoot), new File(commonServices),
+ osFamily, metaInfoDao, actionMetadata, stackDao);
+
+ for (StackInfo stackInfo : stackManager.getStacks()) {
+ for (ServiceInfo serviceInfo : stackInfo.getServices()) {
+ Type type = new TypeToken<Map<String, Map<String, List<MetricDefinition>>>>() {
+ }.getType();
+
+ Gson gson = new Gson();
+ Map<String, Map<String, List<MetricDefinition>>> map = null;
+ if (serviceInfo.getMetricsFile() != null) {
+ try {
+ map = gson.fromJson(new FileReader(serviceInfo.getMetricsFile()), type);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new AmbariException("Failed to load metrics from file " + serviceInfo.getMetricsFile().getAbsolutePath());
+ }
+ }
+ }
+ }
+ }
+
//todo: component override assertions
}