HADOOP-17995. Stale record should be remove when DataNodePeerMetrics#dumpSendPacketDownstreamAvgInfoAsJson (#3630)
This commit is contained in:
parent
646c470e5d
commit
91af256a5b
|
@ -179,8 +179,11 @@ public class MutableRollingAverages extends MutableMetric implements Closeable {
|
||||||
long totalCount = 0;
|
long totalCount = 0;
|
||||||
|
|
||||||
for (final SumAndCount sumAndCount : entry.getValue()) {
|
for (final SumAndCount sumAndCount : entry.getValue()) {
|
||||||
totalCount += sumAndCount.getCount();
|
if (Time.monotonicNow() - sumAndCount.getSnapshotTimeStamp()
|
||||||
totalSum += sumAndCount.getSum();
|
< recordValidityMs) {
|
||||||
|
totalCount += sumAndCount.getCount();
|
||||||
|
totalSum += sumAndCount.getSum();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (totalCount != 0) {
|
if (totalCount != 0) {
|
||||||
|
|
|
@ -122,10 +122,16 @@ public class TestDataNodePeerMetrics {
|
||||||
GenericTestUtils.waitFor(
|
GenericTestUtils.waitFor(
|
||||||
() -> rollingAverages.getStats(numSamples).size() > 0, 500, 5000);
|
() -> rollingAverages.getStats(numSamples).size() > 0, 500, 5000);
|
||||||
assertEquals(3, rollingAverages.getStats(numSamples).size());
|
assertEquals(3, rollingAverages.getStats(numSamples).size());
|
||||||
|
String json = peerMetrics.dumpSendPacketDownstreamAvgInfoAsJson();
|
||||||
|
for (String peerAddr : peerAddrList) {
|
||||||
|
assertThat(json, containsString(peerAddr));
|
||||||
|
}
|
||||||
/* wait for stale report to be removed */
|
/* wait for stale report to be removed */
|
||||||
GenericTestUtils.waitFor(
|
GenericTestUtils.waitFor(
|
||||||
() -> rollingAverages.getStats(numSamples).isEmpty(), 500, 10000);
|
() -> rollingAverages.getStats(numSamples).isEmpty(), 500, 10000);
|
||||||
assertEquals(0, rollingAverages.getStats(numSamples).size());
|
assertEquals(0, rollingAverages.getStats(numSamples).size());
|
||||||
|
json = peerMetrics.dumpSendPacketDownstreamAvgInfoAsJson();
|
||||||
|
assertEquals("{}", json);
|
||||||
|
|
||||||
/* dn can report peer metrics normally when it added back to cluster */
|
/* dn can report peer metrics normally when it added back to cluster */
|
||||||
for (String peerAddr : peerAddrList) {
|
for (String peerAddr : peerAddrList) {
|
||||||
|
@ -138,6 +144,10 @@ public class TestDataNodePeerMetrics {
|
||||||
GenericTestUtils.waitFor(
|
GenericTestUtils.waitFor(
|
||||||
() -> rollingAverages.getStats(numSamples).size() > 0, 500, 10000);
|
() -> rollingAverages.getStats(numSamples).size() > 0, 500, 10000);
|
||||||
assertEquals(3, rollingAverages.getStats(numSamples).size());
|
assertEquals(3, rollingAverages.getStats(numSamples).size());
|
||||||
|
json = peerMetrics.dumpSendPacketDownstreamAvgInfoAsJson();
|
||||||
|
for (String peerAddr : peerAddrList) {
|
||||||
|
assertThat(json, containsString(peerAddr));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue