@Override public TimelineV2Client run() throws Exception { TimelineV2Client timelineClient = TimelineV2Client.createTimelineClient(appId); timelineClient.init(getConfig()); timelineClient.start(); return timelineClient; } });
@Override public TimelinePutResponse run() throws Exception { timelineV2Client.putEntitiesAsync(entity); return null; } });
public void setTimelineServiceAddress(ApplicationId appId, String collectorAddr) { TimelineV2Client client = appToClientMap.get(appId); if (client != null) { client.setTimelineCollectorInfo(CollectorInfo.newInstance(collectorAddr)); } }
@Test public void testPutEntities() throws Exception { TimelineV2Client client = TimelineV2Client.createTimelineClient(ApplicationId.newInstance(0, 1)); try { // Set the timeline service address manually. client.setTimelineCollectorInfo(CollectorInfo.newInstance( collectorManager.getRestServerBindAddress())); client.init(conf); client.start(); TimelineEntity entity = new TimelineEntity(); entity.setType("test entity type"); entity.setId("test entity id"); TimelineMetric metric = new TimelineMetric(TimelineMetric.Type.TIME_SERIES); metric.setId("test metric id"); metric.addValue(1L, 1.0D); metric.addValue(2L, 2.0D); entity.addMetric(metric); client.putEntities(entity); client.putEntitiesAsync(entity); } finally { client.stop(); } }
private TimelineV2Client createTimelineClientForUGI(ApplicationId appId) { TimelineV2Client client = TimelineV2Client.createTimelineClient(ApplicationId.newInstance(0, 1)); // set the timeline service address. String restBindAddr = collectorManager.getRestServerBindAddress(); String addr = "localhost" + restBindAddr.substring(restBindAddr.indexOf(":")); client.setTimelineCollectorInfo(CollectorInfo.newInstance(addr)); client.init(conf); client.start(); return client; }
new ArrayList<>(ugi.getTokens()); assertEquals(0, tokens.size()); TimelineV2Client client = spy(TimelineV2Client.createTimelineClient(appId)); client.init(conf); when(((RunningAppContext)allocator.getContext()).getTimelineV2Client()). thenReturn(client); verify(client).setTimelineCollectorInfo(collectorInfo); mockScheduler.updateCollectorInfo(collectorInfo); allocator.schedule(); verify(client).setTimelineCollectorInfo(collectorInfo);
private void publishAndVerifyEntity(ApplicationId appId, File entityTypeDir, String entityType, int numEntities) throws Exception { TimelineV2Client client = createTimelineClientForUGI(appId); try { // Sync call. Results available immediately. client.putEntities(createEntity("entity1", entityType)); assertEquals(numEntities, entityTypeDir.listFiles().length); verifyEntity(entityTypeDir, "entity1", entityType); // Async call. client.putEntitiesAsync(createEntity("entity2", entityType)); } finally { client.stop(); } }
timelineV2Client.putEntitiesAsync(tEntity); } else { timelineV2Client.putEntities(tEntity, appEntityWithJobMetrics);
timelineClient.start(); } else if (timelineV2Client != null) { timelineV2Client.start();
public RunningAppContext(Configuration config, TaskAttemptFinishingMonitor taskAttemptFinishingMonitor) { this.conf = config; this.clientToAMTokenSecretManager = new ClientToAMTokenSecretManager(appAttemptID, null); this.taskAttemptFinishingMonitor = taskAttemptFinishingMonitor; if (conf.getBoolean(MRJobConfig.MAPREDUCE_JOB_EMIT_TIMELINE_DATA, MRJobConfig.DEFAULT_MAPREDUCE_JOB_EMIT_TIMELINE_DATA) && YarnConfiguration.timelineServiceEnabled(conf)) { if (YarnConfiguration.timelineServiceV2Enabled(conf)) { // create new version TimelineClient timelineV2Client = TimelineV2Client.createTimelineClient( appAttemptID.getApplicationId()); } else { timelineClient = TimelineClient.createTimelineClient(); } } }
private void removeAndStopTimelineClient(ApplicationId appId) { TimelineV2Client client = appToClientMap.remove(appId); if (client != null) { client.stop(); } }
timelineV2Client = ((MRAppMaster.RunningAppContext)context).getTimelineV2Client(); timelineV2Client.init(conf); } else { timelineClient =
private void putEntity(TimelineEntity entity, ApplicationId appId) { try { if (LOG.isDebugEnabled()) { LOG.debug("Publishing the entity " + entity + ", JSON-style content: " + TimelineUtils.dumpTimelineRecordtoJSON(entity)); } TimelineV2Client timelineClient = getTimelineClient(appId); if (timelineClient != null) { timelineClient.putEntities(entity); } else { LOG.error("Seems like client has been removed before the entity " + "could be published for " + entity); } } catch (IOException e) { LOG.error("Error when publishing entity " + entity); if (LOG.isDebugEnabled()) { LOG.debug("Error when publishing entity " + entity, e); } } catch (YarnException e) { LOG.error("Error when publishing entity " + entity, e.getMessage()); if (LOG.isDebugEnabled()) { LOG.debug("Error when publishing entity " + entity, e); } } }
ApplicationId appId = ApplicationId.newInstance(0, 1); TimelineV2Client client = TimelineV2Client.createTimelineClient(appId); try { client.setTimelineCollectorInfo(CollectorInfo.newInstance( collectorManager.getRestServerBindAddress())); client.init(conf); client.start(); ClusterEntity cluster = new ClusterEntity(); cluster.setId(YarnConfiguration.DEFAULT_RM_CLUSTER_ID); QueueEntity queue = new QueueEntity(); queue.setId("default_queue"); client.putEntities(cluster, flow, app, appAttempt, container, user, queue); client.putEntitiesAsync(cluster, flow, app, appAttempt, container, user, queue); } finally { client.stop();
@Override protected void serviceStart() { if (timelineClient != null) { timelineClient.start(); } else if (timelineV2Client != null) { timelineV2Client.start(); } if (handleTimelineEvent) { atsEventDispatcher.start(); } }
private AppContext mockAppContext(Class<? extends AppContext> contextClass, ApplicationId appId, boolean isLastAMRetry) { JobId jobId = TypeConverter.toYarn(TypeConverter.fromYarn(appId)); AppContext mockContext = mock(contextClass); Job mockJob = mockJob(); when(mockContext.getJob(jobId)).thenReturn(mockJob); when(mockContext.getApplicationID()).thenReturn(appId); when(mockContext.isLastAMRetry()).thenReturn(isLastAMRetry); if (mockContext instanceof RunningAppContext) { when(((RunningAppContext)mockContext).getTimelineClient()). thenReturn(TimelineClient.createTimelineClient()); when(((RunningAppContext) mockContext).getTimelineV2Client()) .thenReturn(TimelineV2Client .createTimelineClient(ApplicationId.newInstance(0, 1))); } return mockContext; }
timelineV2Client.stop();
if (configSize > JobHistoryEventUtils.ATS_CONFIG_PUBLISH_SIZE_BYTES) { if (jobEntityForConfigs.getConfigs().size() > 0) { timelineV2Client.putEntities(jobEntityForConfigs); timelineV2Client.putEntities(appEntityForConfigs); jobEntityForConfigs = createJobEntity(jobId); appEntityForConfigs = new ApplicationEntity(); timelineV2Client.putEntities(jobEntityForConfigs); timelineV2Client.putEntities(appEntityForConfigs);
@Override public Void run() throws Exception { if (YarnConfiguration.timelineServiceEnabled(conf)) { timelineServiceV1Enabled = YarnConfiguration.timelineServiceV1Enabled(conf); timelineServiceV2Enabled = YarnConfiguration.timelineServiceV2Enabled(conf); // Creating the Timeline Client if (timelineServiceV1Enabled) { timelineClient = TimelineClient.createTimelineClient(); timelineClient.init(conf); timelineClient.start(); LOG.info("Timeline service V1 client is enabled"); } if (timelineServiceV2Enabled) { timelineV2Client = TimelineV2Client.createTimelineClient( appAttemptID.getApplicationId()); timelineV2Client.init(conf); timelineV2Client.start(); LOG.info("Timeline service V2 client is enabled"); } } else { timelineClient = null; timelineV2Client = null; LOG.warn("Timeline service is not enabled"); } return null; } });
@Override public TimelinePutResponse run() throws Exception { timelineV2Client.putEntitiesAsync(entity); return null; } });