|
@@ -46,6 +46,7 @@ import org.apache.hadoop.yarn.server.nodemanager.Context;
|
|
|
import org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationContainerFinishedEvent;
|
|
|
import org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container;
|
|
|
import org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree;
|
|
|
+import org.apache.hadoop.yarn.util.TimelineServiceHelper;
|
|
|
import org.junit.Assert;
|
|
|
import org.junit.Test;
|
|
|
import org.junit.After;
|
|
@@ -140,6 +141,8 @@ public class TestNMTimelinePublisher {
|
|
|
entity.getInfo().get(ContainerMetricsConstants.DIAGNOSTICS_INFO));
|
|
|
Assert.assertEquals(exitStatus,
|
|
|
entity.getInfo().get(ContainerMetricsConstants.EXIT_STATUS_INFO));
|
|
|
+ Assert.assertEquals(TimelineServiceHelper.invertLong(
|
|
|
+ cId.getContainerId()), entity.getIdPrefix());
|
|
|
}
|
|
|
|
|
|
@Test public void testContainerResourceUsage() {
|
|
@@ -148,29 +151,31 @@ public class TestNMTimelinePublisher {
|
|
|
Container aContainer = mock(Container.class);
|
|
|
when(aContainer.getContainerId()).thenReturn(ContainerId
|
|
|
.newContainerId(ApplicationAttemptId.newInstance(appId, 1), 0L));
|
|
|
+ long idPrefix = TimelineServiceHelper.invertLong(
|
|
|
+ aContainer.getContainerId().getContainerId());
|
|
|
publisher.reportContainerResourceUsage(aContainer, 1024L, 8F);
|
|
|
- verifyPublishedResourceUsageMetrics(timelineClient, 1024L, 8);
|
|
|
+ verifyPublishedResourceUsageMetrics(timelineClient, 1024L, 8, idPrefix);
|
|
|
timelineClient.reset();
|
|
|
|
|
|
publisher.reportContainerResourceUsage(aContainer, 1024L, 0.8F);
|
|
|
- verifyPublishedResourceUsageMetrics(timelineClient, 1024L, 1);
|
|
|
+ verifyPublishedResourceUsageMetrics(timelineClient, 1024L, 1, idPrefix);
|
|
|
timelineClient.reset();
|
|
|
|
|
|
publisher.reportContainerResourceUsage(aContainer, 1024L, 0.49F);
|
|
|
- verifyPublishedResourceUsageMetrics(timelineClient, 1024L, 0);
|
|
|
+ verifyPublishedResourceUsageMetrics(timelineClient, 1024L, 0, idPrefix);
|
|
|
timelineClient.reset();
|
|
|
|
|
|
publisher.reportContainerResourceUsage(aContainer, 1024L,
|
|
|
(float) ResourceCalculatorProcessTree.UNAVAILABLE);
|
|
|
verifyPublishedResourceUsageMetrics(timelineClient, 1024L,
|
|
|
- ResourceCalculatorProcessTree.UNAVAILABLE);
|
|
|
+ ResourceCalculatorProcessTree.UNAVAILABLE, idPrefix);
|
|
|
}
|
|
|
|
|
|
- private void verifyPublishedResourceUsageMetrics(
|
|
|
- DummyTimelineClient timelineClient, long memoryUsage, int cpuUsage) {
|
|
|
+ private void verifyPublishedResourceUsageMetrics(DummyTimelineClient
|
|
|
+ dummyTimelineClient, long memoryUsage, int cpuUsage, long idPrefix) {
|
|
|
TimelineEntity[] entities = null;
|
|
|
for (int i = 0; i < 10; i++) {
|
|
|
- entities = timelineClient.getLastPublishedEntities();
|
|
|
+ entities = dummyTimelineClient.getLastPublishedEntities();
|
|
|
if (entities != null) {
|
|
|
break;
|
|
|
}
|
|
@@ -188,6 +193,7 @@ public class TestNMTimelinePublisher {
|
|
|
assertNotNull("entities are expected to be published", entities);
|
|
|
assertEquals("Expected number of metrics notpublished",
|
|
|
numberOfResourceMetrics, entities[0].getMetrics().size());
|
|
|
+ assertEquals(idPrefix, entities[0].getIdPrefix());
|
|
|
Iterator<TimelineMetric> metrics = entities[0].getMetrics().iterator();
|
|
|
while (metrics.hasNext()) {
|
|
|
TimelineMetric metric = metrics.next();
|