HDFS-4518. Finer grained metrics for HDFS capacity. Contributed by Suresh Srinivas.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1451348 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
27c8a87a54
commit
2e02b92664
@ -316,6 +316,9 @@ Release 2.0.4-beta - UNRELEASED
|
|||||||
HDFS-4304. Make FSEditLogOp.MAX_OP_SIZE configurable. (Colin Patrick
|
HDFS-4304. Make FSEditLogOp.MAX_OP_SIZE configurable. (Colin Patrick
|
||||||
McCabe via atm)
|
McCabe via atm)
|
||||||
|
|
||||||
|
HDFS-4518. Finer grained metrics for HDFS capacity.
|
||||||
|
(Arpit Agarwal via suresh)
|
||||||
|
|
||||||
OPTIMIZATIONS
|
OPTIMIZATIONS
|
||||||
|
|
||||||
BUG FIXES
|
BUG FIXES
|
||||||
|
@ -3735,42 +3735,49 @@ long[] getStats() {
|
|||||||
return stats;
|
return stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Total raw bytes including non-dfs used space.
|
|
||||||
*/
|
|
||||||
@Override // FSNamesystemMBean
|
@Override // FSNamesystemMBean
|
||||||
|
@Metric({"CapacityTotal",
|
||||||
|
"Total raw capacity of data nodes in bytes"})
|
||||||
public long getCapacityTotal() {
|
public long getCapacityTotal() {
|
||||||
return datanodeStatistics.getCapacityTotal();
|
return datanodeStatistics.getCapacityTotal();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Metric
|
@Metric({"CapacityTotalGB",
|
||||||
|
"Total raw capacity of data nodes in GB"})
|
||||||
public float getCapacityTotalGB() {
|
public float getCapacityTotalGB() {
|
||||||
return DFSUtil.roundBytesToGB(getCapacityTotal());
|
return DFSUtil.roundBytesToGB(getCapacityTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Total used space by data nodes
|
|
||||||
*/
|
|
||||||
@Override // FSNamesystemMBean
|
@Override // FSNamesystemMBean
|
||||||
|
@Metric({"CapacityUsed",
|
||||||
|
"Total used capacity across all data nodes in bytes"})
|
||||||
public long getCapacityUsed() {
|
public long getCapacityUsed() {
|
||||||
return datanodeStatistics.getCapacityUsed();
|
return datanodeStatistics.getCapacityUsed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Metric
|
@Metric({"CapacityUsedGB",
|
||||||
|
"Total used capacity across all data nodes in GB"})
|
||||||
public float getCapacityUsedGB() {
|
public float getCapacityUsedGB() {
|
||||||
return DFSUtil.roundBytesToGB(getCapacityUsed());
|
return DFSUtil.roundBytesToGB(getCapacityUsed());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override // FSNamesystemMBean
|
||||||
|
@Metric({"CapacityRemaining", "Remaining capacity in bytes"})
|
||||||
public long getCapacityRemaining() {
|
public long getCapacityRemaining() {
|
||||||
return datanodeStatistics.getCapacityRemaining();
|
return datanodeStatistics.getCapacityRemaining();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Metric
|
@Metric({"CapacityRemainingGB", "Remaining capacity in GB"})
|
||||||
public float getCapacityRemainingGB() {
|
public float getCapacityRemainingGB() {
|
||||||
return DFSUtil.roundBytesToGB(getCapacityRemaining());
|
return DFSUtil.roundBytesToGB(getCapacityRemaining());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Metric({"CapacityUsedNonDFS",
|
||||||
|
"Total space used by data nodes for non DFS purposes in bytes"})
|
||||||
|
public long getCapacityUsedNonDFS() {
|
||||||
|
return datanodeStatistics.getCapacityUsedNonDFS();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Total number of connections.
|
* Total number of connections.
|
||||||
*/
|
*/
|
||||||
|
@ -124,6 +124,24 @@ private void readFile(FileSystem fileSys,Path name) throws IOException {
|
|||||||
stm.close();
|
stm.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that capacity metrics are exported and pass
|
||||||
|
* basic sanity tests.
|
||||||
|
*/
|
||||||
|
@Test (timeout = 1800)
|
||||||
|
public void testCapacityMetrics() throws Exception {
|
||||||
|
MetricsRecordBuilder rb = getMetrics(NS_METRICS);
|
||||||
|
long capacityTotal = MetricsAsserts.getLongGauge("CapacityTotal", rb);
|
||||||
|
assert(capacityTotal != 0);
|
||||||
|
long capacityUsed = MetricsAsserts.getLongGauge("CapacityUsed", rb);
|
||||||
|
long capacityRemaining =
|
||||||
|
MetricsAsserts.getLongGauge("CapacityRemaining", rb);
|
||||||
|
long capacityUsedNonDFS =
|
||||||
|
MetricsAsserts.getLongGauge("CapacityUsedNonDFS", rb);
|
||||||
|
assert(capacityUsed + capacityRemaining + capacityUsedNonDFS ==
|
||||||
|
capacityTotal);
|
||||||
|
}
|
||||||
|
|
||||||
/** Test metrics indicating the number of stale DataNodes */
|
/** Test metrics indicating the number of stale DataNodes */
|
||||||
@Test
|
@Test
|
||||||
public void testStaleNodes() throws Exception {
|
public void testStaleNodes() throws Exception {
|
||||||
|
Loading…
Reference in New Issue
Block a user