Repository: hadoop Updated Branches: refs/heads/YARN-2928 e2e5a9aed -> 10a4f8ae6
http://git-wip-us.apache.org/repos/asf/hadoop/blob/10a4f8ae/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestFileSystemTimelineReaderImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestFileSystemTimelineReaderImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestFileSystemTimelineReaderImpl.java index b7804e7..a8a2ff8 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestFileSystemTimelineReaderImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestFileSystemTimelineReaderImpl.java @@ -37,6 +37,9 @@ import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineMetric; import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineDataToRetrieve; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineEntityFilters; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderContext; import org.apache.hadoop.yarn.server.timelineservice.storage.TimelineReader.Field; import org.apache.hadoop.yarn.util.timeline.TimelineUtils; import org.junit.AfterClass; @@ -258,9 +261,10 @@ public class TestFileSystemTimelineReaderImpl { public void testGetEntityDefaultView() throws Exception { // If no fields are specified, entity is returned with default view i.e. // only the id, type and created time. - TimelineEntity result = - reader.getEntity("user1", "cluster1", "flow1", 1L, "app1", - "app", "id_1", null, null, null); + TimelineEntity result = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", "id_1"), + new TimelineDataToRetrieve(null, null, null)); Assert.assertEquals( (new TimelineEntity.Identifier("app", "id_1")).toString(), result.getIdentifier().toString()); @@ -272,9 +276,10 @@ public class TestFileSystemTimelineReaderImpl { @Test public void testGetEntityByClusterAndApp() throws Exception { // Cluster and AppId should be enough to get an entity. - TimelineEntity result = - reader.getEntity(null, "cluster1", null, null, "app1", - "app", "id_1", null, null, null); + TimelineEntity result = reader.getEntity( + new TimelineReaderContext("cluster1", null, null, null, "app1", "app", + "id_1"), + new TimelineDataToRetrieve(null, null, null)); Assert.assertEquals( (new TimelineEntity.Identifier("app", "id_1")).toString(), result.getIdentifier().toString()); @@ -288,9 +293,10 @@ public class TestFileSystemTimelineReaderImpl { public void testAppFlowMappingCsv() throws Exception { // Test getting an entity by cluster and app where flow entry // in app flow mapping csv has commas. - TimelineEntity result = - reader.getEntity(null, "cluster1", null, null, "app2", - "app", "id_5", null, null, null); + TimelineEntity result = reader.getEntity( + new TimelineReaderContext("cluster1", null, null, null, "app2", + "app", "id_5"), + new TimelineDataToRetrieve(null, null, null)); Assert.assertEquals( (new TimelineEntity.Identifier("app", "id_5")).toString(), result.getIdentifier().toString()); @@ -300,10 +306,11 @@ public class TestFileSystemTimelineReaderImpl { @Test public void testGetEntityCustomFields() throws Exception { // Specified fields in addition to default view will be returned. - TimelineEntity result = - reader.getEntity("user1", "cluster1", "flow1", 1L, - "app1", "app", "id_1", null, null, - EnumSet.of(Field.INFO, Field.CONFIGS, Field.METRICS)); + TimelineEntity result = reader.getEntity( + new TimelineReaderContext("cluster1","user1", "flow1", 1L, "app1", + "app", "id_1"), + new TimelineDataToRetrieve(null, null, + EnumSet.of(Field.INFO, Field.CONFIGS, Field.METRICS))); Assert.assertEquals( (new TimelineEntity.Identifier("app", "id_1")).toString(), result.getIdentifier().toString()); @@ -318,9 +325,10 @@ public class TestFileSystemTimelineReaderImpl { @Test public void testGetEntityAllFields() throws Exception { // All fields of TimelineEntity will be returned. - TimelineEntity result = - reader.getEntity("user1", "cluster1", "flow1", 1L, "app1", "app", - "id_1", null, null, EnumSet.of(Field.ALL)); + TimelineEntity result = reader.getEntity( + new TimelineReaderContext("cluster1","user1", "flow1", 1L, "app1", + "app", "id_1"), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); Assert.assertEquals( (new TimelineEntity.Identifier("app", "id_1")).toString(), result.getIdentifier().toString()); @@ -333,20 +341,21 @@ public class TestFileSystemTimelineReaderImpl { @Test public void testGetAllEntities() throws Exception { - Set<TimelineEntity> result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, null, null, null, null, null, null, null, null, null, - null); + Set<TimelineEntity> result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), new TimelineEntityFilters(), + new TimelineDataToRetrieve()); // All 3 entities will be returned Assert.assertEquals(4, result.size()); } @Test public void testGetEntitiesWithLimit() throws Exception { - Set<TimelineEntity> result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - 2L, null, null, null, null, null, null, null, null, null, null, - null); + Set<TimelineEntity> result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(2L, null, null, null, null, null, null, + null, null), new TimelineDataToRetrieve()); Assert.assertEquals(2, result.size()); // Needs to be rewritten once hashcode and equals for // TimelineEntity is implemented @@ -357,10 +366,11 @@ public class TestFileSystemTimelineReaderImpl { Assert.fail("Entity not sorted by created time"); } } - result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - 3L, null, null, null, null, null, null, null, null, null, null, - null); + result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(3L, null, null, null, null, null, null, + null, null), new TimelineDataToRetrieve()); // Even though 2 entities out of 4 have same created time, one entity // is left out due to limit Assert.assertEquals(3, result.size()); @@ -369,10 +379,12 @@ public class TestFileSystemTimelineReaderImpl { @Test public void testGetEntitiesByTimeWindows() throws Exception { // Get entities based on created time start and end time range. - Set<TimelineEntity> result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, 1425016502030L, 1425016502060L, null, null, null, null, null, - null, null, null, null); + Set<TimelineEntity> result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, 1425016502030L, 1425016502060L, null, + null, null, null, null, null), + new TimelineDataToRetrieve()); Assert.assertEquals(1, result.size()); // Only one entity with ID id_4 should be returned. for (TimelineEntity entity : result) { @@ -382,10 +394,12 @@ public class TestFileSystemTimelineReaderImpl { } // Get entities if only created time end is specified. - result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, 1425016502010L, null, null, null, null, null, null, - null, null, null); + result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, null, 1425016502010L, null, null, + null, null, null, null), + new TimelineDataToRetrieve()); Assert.assertEquals(3, result.size()); for (TimelineEntity entity : result) { if (entity.getId().equals("id_4")) { @@ -394,10 +408,12 @@ public class TestFileSystemTimelineReaderImpl { } // Get entities if only created time start is specified. - result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, 1425016502010L, null, null, null, null, null, null, null, - null, null, null); + result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, 1425016502010L, null, null, null, + null, null, null, null), + new TimelineDataToRetrieve()); Assert.assertEquals(1, result.size()); for (TimelineEntity entity : result) { if (!entity.getId().equals("id_4")) { @@ -411,10 +427,12 @@ public class TestFileSystemTimelineReaderImpl { // Get entities based on info filters. Map<String, Object> infoFilters = new HashMap<String, Object>(); infoFilters.put("info2", 3.5); - Set<TimelineEntity> result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, null, null, null, infoFilters, null, null, null, null, - null, null); + Set<TimelineEntity> result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, null, null, null, null, infoFilters, + null, null, null), + new TimelineDataToRetrieve()); Assert.assertEquals(1, result.size()); // Only one entity with ID id_3 should be returned. for (TimelineEntity entity : result) { @@ -427,10 +445,12 @@ public class TestFileSystemTimelineReaderImpl { Map<String, String> configFilters = new HashMap<String, String>(); configFilters.put("config_1", "123"); configFilters.put("config_3", "abc"); - result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, null, null, null, null, configFilters, null, null, null, - null, null); + result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, null, null, null, null, null, + configFilters, null, null), + new TimelineDataToRetrieve()); Assert.assertEquals(2, result.size()); for (TimelineEntity entity : result) { if (!entity.getId().equals("id_1") && !entity.getId().equals("id_3")) { @@ -442,10 +462,12 @@ public class TestFileSystemTimelineReaderImpl { Set<String> eventFilters = new HashSet<String>(); eventFilters.add("event_2"); eventFilters.add("event_4"); - result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, null, null, null, null, null, null, eventFilters, null, - null, null); + result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, null, null, null, null, null, null, + null, eventFilters), + new TimelineDataToRetrieve()); Assert.assertEquals(1, result.size()); for (TimelineEntity entity : result) { if (!entity.getId().equals("id_3")) { @@ -456,10 +478,12 @@ public class TestFileSystemTimelineReaderImpl { // Get entities based on metric filters. Set<String> metricFilters = new HashSet<String>(); metricFilters.add("metric3"); - result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, null, null, null, null, null, metricFilters, null, null, - null, null); + result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, null, null, null, null, null, null, + metricFilters, null), + new TimelineDataToRetrieve()); Assert.assertEquals(2, result.size()); // Two entities with IDs' id_1 and id_2 should be returned. for (TimelineEntity entity : result) { @@ -476,10 +500,12 @@ public class TestFileSystemTimelineReaderImpl { Set<String> relatesToIds = new HashSet<String>(); relatesToIds.add("flow1"); relatesTo.put("flow", relatesToIds); - Set<TimelineEntity> result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, null, relatesTo, null, null, null, null, null, null, - null, null); + Set<TimelineEntity> result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, null, null, relatesTo, null, null, + null, null, null), + new TimelineDataToRetrieve()); Assert.assertEquals(1, result.size()); // Only one entity with ID id_1 should be returned. for (TimelineEntity entity : result) { @@ -493,10 +519,12 @@ public class TestFileSystemTimelineReaderImpl { Set<String> isRelatedToIds = new HashSet<String>(); isRelatedToIds.add("tid1_2"); isRelatedTo.put("type1", isRelatedToIds); - result = - reader.getEntities("user1", "cluster1", "flow1", 1L, "app1", "app", - null, null, null, null, isRelatedTo, null, null, null, null, null, - null, null); + result = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "flow1", 1L, "app1", + "app", null), + new TimelineEntityFilters(null, null, null, null, isRelatedTo, null, + null, null, null), + new TimelineDataToRetrieve()); Assert.assertEquals(2, result.size()); // Two entities with IDs' id_1 and id_3 should be returned. for (TimelineEntity entity : result) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/10a4f8ae/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestHBaseTimelineStorage.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestHBaseTimelineStorage.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestHBaseTimelineStorage.java index b74f5a1..4e07ecf 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestHBaseTimelineStorage.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/TestHBaseTimelineStorage.java @@ -49,6 +49,9 @@ import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEvent; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineMetric; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineMetric.Type; import org.apache.hadoop.yarn.server.metrics.ApplicationMetricsConstants; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineDataToRetrieve; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineEntityFilters; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderContext; import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineCompareOp; import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineFilterList; import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelinePrefixFilter; @@ -574,9 +577,11 @@ public class TestHBaseTimelineStorage { matchMetrics(metricValues, metricMap); // read the timeline entity using the reader this time - TimelineEntity e1 = reader.getEntity(user, cluster, flow, runid, appId, - entity.getType(), entity.getId(), null, null, - EnumSet.of(TimelineReader.Field.ALL)); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext(cluster, user, flow, runid, appId, + entity.getType(), entity.getId()), + new TimelineDataToRetrieve( + null, null, EnumSet.of(TimelineReader.Field.ALL))); assertNotNull(e1); // verify attributes @@ -771,12 +776,15 @@ public class TestHBaseTimelineStorage { assertEquals(16, colCount); // read the timeline entity using the reader this time - TimelineEntity e1 = reader.getEntity(user, cluster, flow, runid, appName, - entity.getType(), entity.getId(), null, null, - EnumSet.of(TimelineReader.Field.ALL)); - Set<TimelineEntity> es1 = reader.getEntities(user, cluster, flow, runid, - appName, entity.getType(), null, null, null, null, null, null, null, - null, null, null, null, EnumSet.of(TimelineReader.Field.ALL)); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext(cluster, user, flow, runid, appName, + entity.getType(), entity.getId()), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext(cluster, user, flow, runid, appName, + entity.getType(), null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); assertNotNull(e1); assertEquals(1, es1.size()); @@ -906,12 +914,14 @@ public class TestHBaseTimelineStorage { } // read the timeline entity using the reader this time - TimelineEntity e1 = reader.getEntity(user, cluster, flow, runid, appName, - entity.getType(), entity.getId(), null, null, - EnumSet.of(TimelineReader.Field.ALL)); - TimelineEntity e2 = reader.getEntity(user, cluster, null, null, appName, - entity.getType(), entity.getId(), null, null, - EnumSet.of(TimelineReader.Field.ALL)); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext(cluster, user, flow, runid, appName, + entity.getType(), entity.getId()), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); + TimelineEntity e2 = reader.getEntity( + new TimelineReaderContext(cluster, user, null, null, appName, + entity.getType(), entity.getId()), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); assertNotNull(e1); assertNotNull(e2); assertEquals(e1, e2); @@ -1012,12 +1022,15 @@ public class TestHBaseTimelineStorage { assertEquals(1, rowCount); // read the timeline entity using the reader this time - TimelineEntity e1 = reader.getEntity(user, cluster, flow, runid, appName, - entity.getType(), entity.getId(), null, null, - EnumSet.of(TimelineReader.Field.ALL)); - Set<TimelineEntity> es1 = reader.getEntities(user, cluster, flow, runid, - appName, entity.getType(), null, null, null, null, null, null, null, - null, null, null, null, EnumSet.of(TimelineReader.Field.ALL)); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext(cluster, user, flow, runid, appName, + entity.getType(), entity.getId()), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext(cluster, user, flow, runid, appName, + entity.getType(), null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); assertNotNull(e1); assertEquals(1, es1.size()); @@ -1100,31 +1113,36 @@ public class TestHBaseTimelineStorage { @Test public void testReadEntities() throws Exception { - TimelineEntity e1 = reader.getEntity("user1", "cluster1", "some_flow_name", - 1002345678919L, "application_1231111111_1111","world", "hello", null, - null, EnumSet.of(Field.ALL)); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", "hello"), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); assertNotNull(e1); assertEquals(3, e1.getConfigs().size()); assertEquals(1, e1.getIsRelatedToEntities().size()); - Set<TimelineEntity> es1 = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, "application_1231111111_1111","world", - null, null, null, null, null, null, null, null, null, null, null, - EnumSet.of(Field.ALL)); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", + null), new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); assertEquals(3, es1.size()); } @Test public void testReadEntitiesDefaultView() throws Exception { - TimelineEntity e1 = - reader.getEntity("user1", "cluster1", "some_flow_name", 1002345678919L, - "application_1231111111_1111","world", "hello", null, null, null); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", "hello"), + new TimelineDataToRetrieve()); assertNotNull(e1); assertTrue(e1.getInfo().isEmpty() && e1.getConfigs().isEmpty() && e1.getMetrics().isEmpty() && e1.getIsRelatedToEntities().isEmpty() && e1.getRelatesToEntities().isEmpty()); - Set<TimelineEntity> es1 = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, "application_1231111111_1111","world", - null, null, null, null, null, null, null, null, null, null, null, null); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve()); assertEquals(3, es1.size()); for (TimelineEntity e : es1) { assertTrue(e.getInfo().isEmpty() && e.getConfigs().isEmpty() && @@ -1135,17 +1153,20 @@ public class TestHBaseTimelineStorage { @Test public void testReadEntitiesByFields() throws Exception { - TimelineEntity e1 = - reader.getEntity("user1", "cluster1", "some_flow_name", 1002345678919L, - "application_1231111111_1111","world", "hello", null, null, - EnumSet.of(Field.INFO, Field.CONFIGS)); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", "hello"), + new TimelineDataToRetrieve( + null, null, EnumSet.of(Field.INFO, Field.CONFIGS))); assertNotNull(e1); assertEquals(3, e1.getConfigs().size()); assertEquals(0, e1.getIsRelatedToEntities().size()); - Set<TimelineEntity> es1 = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, "application_1231111111_1111","world", - null, null, null, null, null, null, null, null, null, null, null, - EnumSet.of(Field.IS_RELATED_TO, Field.METRICS)); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve( + null, null, EnumSet.of(Field.IS_RELATED_TO, Field.METRICS))); assertEquals(3, es1.size()); int metricsCnt = 0; int isRelatedToCnt = 0; @@ -1165,14 +1186,17 @@ public class TestHBaseTimelineStorage { TimelineFilterList list = new TimelineFilterList(Operator.OR, new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "cfg_")); - TimelineEntity e1 = - reader.getEntity("user1", "cluster1", "some_flow_name", 1002345678919L, - "application_1231111111_1111","world", "hello", list, null, null); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", "hello"), + new TimelineDataToRetrieve(list, null, null)); assertNotNull(e1); assertEquals(1, e1.getConfigs().size()); - Set<TimelineEntity> es1 = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, "application_1231111111_1111","world", - null, null, null, null, null, null, null, null, null, list, null, null); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(list, null, null)); int cfgCnt = 0; for (TimelineEntity entity : es1) { cfgCnt += entity.getConfigs().size(); @@ -1186,10 +1210,12 @@ public class TestHBaseTimelineStorage { TimelineFilterList list = new TimelineFilterList(Operator.OR, new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "cfg_")); - Set<TimelineEntity> entities = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, "application_1231111111_1111","world", - null, null, null, null, null, null, confFilters, null, null, list, null, - null); + Set<TimelineEntity> entities = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", null), + new TimelineEntityFilters(null, null, null, null, null, null, + confFilters, null, null), + new TimelineDataToRetrieve(list, null, null)); assertEquals(1, entities.size()); int cfgCnt = 0; for (TimelineEntity entity : entities) { @@ -1203,14 +1229,17 @@ public class TestHBaseTimelineStorage { TimelineFilterList list = new TimelineFilterList(Operator.OR, new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "MAP1_")); - TimelineEntity e1 = - reader.getEntity("user1", "cluster1", "some_flow_name", 1002345678919L, - "application_1231111111_1111","world", "hello", null, list, null); + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", "hello"), + new TimelineDataToRetrieve(null, list, null)); assertNotNull(e1); assertEquals(1, e1.getMetrics().size()); - Set<TimelineEntity> es1 = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, "application_1231111111_1111","world", - null, null, null, null, null, null, null, null, null, null, list, null); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, list, null)); int metricCnt = 0; for (TimelineEntity entity : es1) { metricCnt += entity.getMetrics().size(); @@ -1224,10 +1253,12 @@ public class TestHBaseTimelineStorage { TimelineFilterList list = new TimelineFilterList(Operator.OR, new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "MAP1_")); - Set<TimelineEntity> entities = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, "application_1231111111_1111","world", - null, null, null, null, null, null, null, metricFilters, null, null, - list, null); + Set<TimelineEntity> entities = reader.getEntities( + new TimelineReaderContext("cluster1","user1", "some_flow_name", + 1002345678919L, "application_1231111111_1111","world", null), + new TimelineEntityFilters(null, null, null, null, null, null, null, + metricFilters, null), + new TimelineDataToRetrieve(null, list, null)); assertEquals(1, entities.size()); int metricCnt = 0; for (TimelineEntity entity : entities) { @@ -1238,33 +1269,40 @@ public class TestHBaseTimelineStorage { @Test public void testReadApps() throws Exception { - TimelineEntity e1 = reader.getEntity("user1", "cluster1", "some_flow_name", + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", 1002345678919L, "application_1111111111_2222", - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, - EnumSet.of(Field.ALL)); + TimelineEntityType.YARN_APPLICATION.toString(), null), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); assertNotNull(e1); assertEquals(3, e1.getConfigs().size()); assertEquals(1, e1.getIsRelatedToEntities().size()); - Set<TimelineEntity> es1 = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, null, - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null, - null, null, null, null, null, null, null, EnumSet.of(Field.ALL)); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, null, TimelineEntityType.YARN_APPLICATION.toString(), + null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.ALL))); assertEquals(3, es1.size()); } @Test public void testReadAppsDefaultView() throws Exception { - TimelineEntity e1 = reader.getEntity("user1", "cluster1", "some_flow_name", + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", 1002345678919L, "application_1111111111_2222", - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null); + TimelineEntityType.YARN_APPLICATION.toString(), null), + new TimelineDataToRetrieve()); assertNotNull(e1); assertTrue(e1.getInfo().isEmpty() && e1.getConfigs().isEmpty() && e1.getMetrics().isEmpty() && e1.getIsRelatedToEntities().isEmpty() && e1.getRelatesToEntities().isEmpty()); - Set<TimelineEntity> es1 = reader.getEntities("user1", "cluster1", - "some_flow_name", 1002345678919L, null, - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null, - null, null, null, null, null, null, null, null); + Set<TimelineEntity> es1 = reader.getEntities( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, null, TimelineEntityType.YARN_APPLICATION.toString(), + null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve()); assertEquals(3, es1.size()); for (TimelineEntity e : es1) { assertTrue(e.getInfo().isEmpty() && e.getConfigs().isEmpty() && @@ -1275,18 +1313,22 @@ public class TestHBaseTimelineStorage { @Test public void testReadAppsByFields() throws Exception { - TimelineEntity e1 = reader.getEntity("user1", "cluster1", "some_flow_name", + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", 1002345678919L, "application_1111111111_2222", - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, - EnumSet.of(Field.INFO, Field.CONFIGS)); + TimelineEntityType.YARN_APPLICATION.toString(), null), + new TimelineDataToRetrieve( + null, null, EnumSet.of(Field.INFO, Field.CONFIGS))); assertNotNull(e1); assertEquals(3, e1.getConfigs().size()); assertEquals(0, e1.getIsRelatedToEntities().size()); Set<TimelineEntity> es1 = reader.getEntities( - "user1", "cluster1", "some_flow_name", 1002345678919L, null, - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null, - null, null, null, null, null, null, null, - EnumSet.of(Field.IS_RELATED_TO, Field.METRICS)); + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, null, TimelineEntityType.YARN_APPLICATION.toString(), + null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve( + null, null, EnumSet.of(Field.IS_RELATED_TO, Field.METRICS))); assertEquals(3, es1.size()); int metricsCnt = 0; int isRelatedToCnt = 0; @@ -1306,15 +1348,19 @@ public class TestHBaseTimelineStorage { TimelineFilterList list = new TimelineFilterList(Operator.OR, new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "cfg_")); - TimelineEntity e1 = reader.getEntity("user1", "cluster1", "some_flow_name", + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", 1002345678919L, "application_1111111111_2222", - TimelineEntityType.YARN_APPLICATION.toString(), null, list, null, null); + TimelineEntityType.YARN_APPLICATION.toString(), null), + new TimelineDataToRetrieve(list, null, null)); assertNotNull(e1); assertEquals(1, e1.getConfigs().size()); Set<TimelineEntity> es1 = reader.getEntities( - "user1", "cluster1", "some_flow_name", 1002345678919L, null, - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null, - null, null, null, null, null, list, null, null); + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, null, TimelineEntityType.YARN_APPLICATION.toString(), + null) , + new TimelineEntityFilters(), + new TimelineDataToRetrieve(list, null, null)); int cfgCnt = 0; for (TimelineEntity entity : es1) { cfgCnt += entity.getConfigs().size(); @@ -1329,9 +1375,12 @@ public class TestHBaseTimelineStorage { new TimelineFilterList(Operator.OR, new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "cfg_")); Set<TimelineEntity> entities = reader.getEntities( - "user1", "cluster1", "some_flow_name", 1002345678919L, null, - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null, - null, null, confFilters, null, null, list, null, null); + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, null, TimelineEntityType.YARN_APPLICATION.toString(), + null), + new TimelineEntityFilters(null, null, null, null, null, null, + confFilters, null, null), + new TimelineDataToRetrieve(list, null, null)); assertEquals(1, entities.size()); int cfgCnt = 0; for (TimelineEntity entity : entities) { @@ -1345,15 +1394,19 @@ public class TestHBaseTimelineStorage { TimelineFilterList list = new TimelineFilterList(Operator.OR, new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "MAP1_")); - TimelineEntity e1 = reader.getEntity("user1", "cluster1", "some_flow_name", + TimelineEntity e1 = reader.getEntity( + new TimelineReaderContext("cluster1", "user1", "some_flow_name", 1002345678919L, "application_1111111111_2222", - TimelineEntityType.YARN_APPLICATION.toString(), null, null, list, null); + TimelineEntityType.YARN_APPLICATION.toString(), null), + new TimelineDataToRetrieve(null, list, null)); assertNotNull(e1); assertEquals(1, e1.getMetrics().size()); Set<TimelineEntity> es1 = reader.getEntities( - "user1", "cluster1", "some_flow_name", 1002345678919L, null, - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null, - null, null, null, null, null, null, list, null); + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, null, TimelineEntityType.YARN_APPLICATION.toString(), + null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, list, null)); int metricCnt = 0; for (TimelineEntity entity : es1) { metricCnt += entity.getMetrics().size(); @@ -1368,9 +1421,12 @@ public class TestHBaseTimelineStorage { new TimelinePrefixFilter(TimelineCompareOp.EQUAL, "MAP1_")); Set<String> metricFilters = ImmutableSet.of("MAP1_SLOT_MILLIS"); Set<TimelineEntity> entities = reader.getEntities( - "user1", "cluster1", "some_flow_name", 1002345678919L, null, - TimelineEntityType.YARN_APPLICATION.toString(), null, null, null, null, - null, null, null, metricFilters, null, null, list, null); + new TimelineReaderContext("cluster1", "user1", "some_flow_name", + 1002345678919L, null, TimelineEntityType.YARN_APPLICATION.toString(), + null), + new TimelineEntityFilters(null, null, null, null, null, null, null, + metricFilters, null), + new TimelineDataToRetrieve(null, list, null)); int metricCnt = 0; assertEquals(1, entities.size()); for (TimelineEntity entity : entities) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/10a4f8ae/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowActivity.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowActivity.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowActivity.java index cb3f7ee..9161902 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowActivity.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowActivity.java @@ -45,6 +45,9 @@ import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntities; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntityType; import org.apache.hadoop.yarn.server.timeline.GenericObjectMapper; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineDataToRetrieve; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineEntityFilters; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderContext; import org.apache.hadoop.yarn.server.timelineservice.storage.HBaseTimelineReaderImpl; import org.apache.hadoop.yarn.server.timelineservice.storage.HBaseTimelineWriterImpl; import org.apache.hadoop.yarn.server.timelineservice.storage.TimelineSchemaCreator; @@ -179,10 +182,12 @@ public class TestHBaseStorageFlowActivity { hbr.init(c1); hbr.start(); // get the flow activity entity - Set<TimelineEntity> entities = - hbr.getEntities(null, cluster, null, null, null, - TimelineEntityType.YARN_FLOW_ACTIVITY.toString(), 10L, null, null, - null, null, null, null, null, null, null, null, null); + Set<TimelineEntity> entities = hbr.getEntities( + new TimelineReaderContext(cluster, null, null, null, null, + TimelineEntityType.YARN_FLOW_ACTIVITY.toString(), null), + new TimelineEntityFilters(10L, null, null, null, null, null, + null, null, null), + new TimelineDataToRetrieve()); assertEquals(1, entities.size()); for (TimelineEntity e : entities) { FlowActivityEntity flowActivity = (FlowActivityEntity)e; @@ -235,10 +240,12 @@ public class TestHBaseStorageFlowActivity { hbr.init(c1); hbr.start(); - Set<TimelineEntity> entities = - hbr.getEntities(user, cluster, flow, null, null, - TimelineEntityType.YARN_FLOW_ACTIVITY.toString(), 10L, null, null, - null, null, null, null, null, null, null, null, null); + Set<TimelineEntity> entities = hbr.getEntities( + new TimelineReaderContext(cluster, user, flow, null, null, + TimelineEntityType.YARN_FLOW_ACTIVITY.toString(), null), + new TimelineEntityFilters(10L, null, null, null, null, null, + null, null, null), + new TimelineDataToRetrieve()); assertEquals(1, entities.size()); for (TimelineEntity e : entities) { FlowActivityEntity entity = (FlowActivityEntity)e; @@ -350,10 +357,12 @@ public class TestHBaseStorageFlowActivity { hbr.init(c1); hbr.start(); - Set<TimelineEntity> entities = - hbr.getEntities(null, cluster, null, null, null, - TimelineEntityType.YARN_FLOW_ACTIVITY.toString(), 10L, null, null, - null, null, null, null, null, null, null, null, null); + Set<TimelineEntity> entities = hbr.getEntities( + new TimelineReaderContext(cluster, null, null, null, null, + TimelineEntityType.YARN_FLOW_ACTIVITY.toString(), null), + new TimelineEntityFilters(10L, null, null, null, null, null, + null, null, null), + new TimelineDataToRetrieve()); assertEquals(1, entities.size()); for (TimelineEntity e : entities) { FlowActivityEntity flowActivity = (FlowActivityEntity)e; http://git-wip-us.apache.org/repos/asf/hadoop/blob/10a4f8ae/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowRun.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowRun.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowRun.java index 57c326b..9504799 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowRun.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/storage/flow/TestHBaseStorageFlowRun.java @@ -44,7 +44,9 @@ import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntities; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntity; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineEntityType; import org.apache.hadoop.yarn.api.records.timelineservice.TimelineMetric; -import org.apache.hadoop.yarn.server.timeline.GenericObjectMapper; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineDataToRetrieve; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineEntityFilters; +import org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderContext; import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineCompareOp; import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineFilterList; import org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelinePrefixFilter; @@ -183,8 +185,10 @@ public class TestHBaseStorageFlowRun { hbr.init(c1); hbr.start(); // get the flow run entity - TimelineEntity entity = hbr.getEntity(user, cluster, flow, runid, null, - TimelineEntityType.YARN_FLOW_RUN.toString(), null, null, null, null); + TimelineEntity entity = hbr.getEntity( + new TimelineReaderContext(cluster, user, flow, runid, null, + TimelineEntityType.YARN_FLOW_RUN.toString(), null), + new TimelineDataToRetrieve()); assertTrue(TimelineEntityType.YARN_FLOW_RUN.matches(entity.getType())); FlowRunEntity flowRun = (FlowRunEntity)entity; assertEquals(minStartTs, flowRun.getStartTime()); @@ -242,8 +246,10 @@ public class TestHBaseStorageFlowRun { hbr = new HBaseTimelineReaderImpl(); hbr.init(c1); hbr.start(); - TimelineEntity entity = hbr.getEntity(user, cluster, flow, runid, null, - TimelineEntityType.YARN_FLOW_RUN.toString(), null, null, null, null); + TimelineEntity entity = hbr.getEntity( + new TimelineReaderContext(cluster, user, flow, runid, null, + TimelineEntityType.YARN_FLOW_RUN.toString(), null), + new TimelineDataToRetrieve()); assertTrue(TimelineEntityType.YARN_FLOW_RUN.matches(entity.getType())); Set<TimelineMetric> metrics = entity.getMetrics(); assertEquals(2, metrics.size()); @@ -350,9 +356,10 @@ public class TestHBaseStorageFlowRun { TimelineFilterList metricsToRetrieve = new TimelineFilterList(new TimelinePrefixFilter(TimelineCompareOp.EQUAL, metric1.substring(0, metric1.indexOf("_") + 1))); - TimelineEntity entity = hbr.getEntity(user, cluster, flow, runid, null, - TimelineEntityType.YARN_FLOW_RUN.toString(), null, null, - metricsToRetrieve, null); + TimelineEntity entity = hbr.getEntity( + new TimelineReaderContext(cluster, user, flow, runid, null, + TimelineEntityType.YARN_FLOW_RUN.toString(), null), + new TimelineDataToRetrieve(null, metricsToRetrieve, null)); assertTrue(TimelineEntityType.YARN_FLOW_RUN.matches(entity.getType())); Set<TimelineMetric> metrics = entity.getMetrics(); assertEquals(1, metrics.size()); @@ -373,9 +380,11 @@ public class TestHBaseStorageFlowRun { } } - Set<TimelineEntity> entities = hbr.getEntities(user, cluster, flow, runid, - null, TimelineEntityType.YARN_FLOW_RUN.toString(), null, null, null, - null, null, null, null, null, null, null, metricsToRetrieve, null); + Set<TimelineEntity> entities = hbr.getEntities( + new TimelineReaderContext(cluster, user, flow, runid, null, + TimelineEntityType.YARN_FLOW_RUN.toString(), null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, metricsToRetrieve, null)); assertEquals(1, entities.size()); for (TimelineEntity timelineEntity : entities) { Set<TimelineMetric> timelineMetrics = timelineEntity.getMetrics(); @@ -441,18 +450,21 @@ public class TestHBaseStorageFlowRun { hbr = new HBaseTimelineReaderImpl(); hbr.init(c1); hbr.start(); - Set<TimelineEntity> entities = hbr.getEntities(user, cluster, flow, runid, - null, TimelineEntityType.YARN_FLOW_RUN.toString(), null, null, null, - null, null, null, null, null, null, null, null, null); + Set<TimelineEntity> entities = hbr.getEntities( + new TimelineReaderContext(cluster, user, flow, runid, null, + TimelineEntityType.YARN_FLOW_RUN.toString(), null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve()); assertEquals(1, entities.size()); for (TimelineEntity timelineEntity : entities) { assertEquals(0, timelineEntity.getMetrics().size()); } - entities = hbr.getEntities(user, cluster, flow, runid, - null, TimelineEntityType.YARN_FLOW_RUN.toString(), null, null, null, - null, null, null, null, null, null, null, null, - EnumSet.of(Field.METRICS)); + entities = hbr.getEntities( + new TimelineReaderContext(cluster, user, flow, runid, null, + TimelineEntityType.YARN_FLOW_RUN.toString(), null), + new TimelineEntityFilters(), + new TimelineDataToRetrieve(null, null, EnumSet.of(Field.METRICS))); assertEquals(1, entities.size()); for (TimelineEntity timelineEntity : entities) { Set<TimelineMetric> timelineMetrics = timelineEntity.getMetrics();