private static TimelineEntity CreateApplicationTimelineEntity(ApplicationId appId , bool emptyACLs, bool noAttemptId, bool wrongAppId) { TimelineEntity entity = new TimelineEntity(); entity.SetEntityType(ApplicationMetricsConstants.EntityType); if (wrongAppId) { entity.SetEntityId("wrong_app_id"); } else { entity.SetEntityId(appId.ToString()); } entity.SetDomainId(TimelineDataManager.DefaultDomainId); entity.AddPrimaryFilter(TimelineStore.SystemFilter.EntityOwner.ToString(), "yarn" ); IDictionary <string, object> entityInfo = new Dictionary <string, object>(); entityInfo[ApplicationMetricsConstants.NameEntityInfo] = "test app"; entityInfo[ApplicationMetricsConstants.TypeEntityInfo] = "test app type"; entityInfo[ApplicationMetricsConstants.UserEntityInfo] = "user1"; entityInfo[ApplicationMetricsConstants.QueueEntityInfo] = "test queue"; entityInfo[ApplicationMetricsConstants.SubmittedTimeEntityInfo] = int.MaxValue + 1L; entityInfo[ApplicationMetricsConstants.AppMemMetrics] = 123; entityInfo[ApplicationMetricsConstants.AppCpuMetrics] = 345; if (emptyACLs) { entityInfo[ApplicationMetricsConstants.AppViewAclsEntityInfo] = string.Empty; } else { entityInfo[ApplicationMetricsConstants.AppViewAclsEntityInfo] = "user2"; } entity.SetOtherInfo(entityInfo); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(ApplicationMetricsConstants.CreatedEventType); tEvent.SetTimestamp(int.MaxValue + 2L + appId.GetId()); entity.AddEvent(tEvent); tEvent = new TimelineEvent(); tEvent.SetEventType(ApplicationMetricsConstants.FinishedEventType); tEvent.SetTimestamp(int.MaxValue + 3L + appId.GetId()); IDictionary <string, object> eventInfo = new Dictionary <string, object>(); eventInfo[ApplicationMetricsConstants.DiagnosticsInfoEventInfo] = "test diagnostics info"; eventInfo[ApplicationMetricsConstants.FinalStatusEventInfo] = FinalApplicationStatus .Undefined.ToString(); eventInfo[ApplicationMetricsConstants.StateEventInfo] = YarnApplicationState.Finished .ToString(); if (!noAttemptId) { eventInfo[ApplicationMetricsConstants.LatestAppAttemptEventInfo] = ApplicationAttemptId .NewInstance(appId, 1); } tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); return(entity); }
private void PublishContainerCreatedEvent(ContainerCreatedEvent @event) { TimelineEntity entity = CreateContainerEntity(@event.GetContainerId()); IDictionary <string, object> entityInfo = new Dictionary <string, object>(); entityInfo[ContainerMetricsConstants.AllocatedMemoryEntityInfo] = @event.GetAllocatedResource ().GetMemory(); entityInfo[ContainerMetricsConstants.AllocatedVcoreEntityInfo] = @event.GetAllocatedResource ().GetVirtualCores(); entityInfo[ContainerMetricsConstants.AllocatedHostEntityInfo] = @event.GetAllocatedNode ().GetHost(); entityInfo[ContainerMetricsConstants.AllocatedPortEntityInfo] = @event.GetAllocatedNode ().GetPort(); entityInfo[ContainerMetricsConstants.AllocatedPriorityEntityInfo] = @event.GetAllocatedPriority ().GetPriority(); entityInfo[ContainerMetricsConstants.AllocatedHostHttpAddressEntityInfo] = @event .GetNodeHttpAddress(); entity.SetOtherInfo(entityInfo); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(ContainerMetricsConstants.CreatedEventType); tEvent.SetTimestamp(@event.GetTimestamp()); entity.AddEvent(tEvent); PutEntity(entity); }
private void PublishApplicationFinishedEvent(ApplicationFinishedEvent @event) { TimelineEntity entity = CreateApplicationEntity(@event.GetApplicationId()); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(ApplicationMetricsConstants.FinishedEventType); tEvent.SetTimestamp(@event.GetTimestamp()); IDictionary <string, object> eventInfo = new Dictionary <string, object>(); eventInfo[ApplicationMetricsConstants.DiagnosticsInfoEventInfo] = @event.GetDiagnosticsInfo (); eventInfo[ApplicationMetricsConstants.FinalStatusEventInfo] = @event.GetFinalApplicationStatus ().ToString(); eventInfo[ApplicationMetricsConstants.StateEventInfo] = @event.GetYarnApplicationState ().ToString(); if (@event.GetLatestApplicationAttemptId() != null) { eventInfo[ApplicationMetricsConstants.LatestAppAttemptEventInfo] = @event.GetLatestApplicationAttemptId ().ToString(); } RMAppMetrics appMetrics = @event.GetAppMetrics(); entity.AddOtherInfo(ApplicationMetricsConstants.AppCpuMetrics, appMetrics.GetVcoreSeconds ()); entity.AddOtherInfo(ApplicationMetricsConstants.AppMemMetrics, appMetrics.GetMemorySeconds ()); tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); PutEntity(entity); }
private static TimelineEntity GenerateEntity() { TimelineEntity entity = new TimelineEntity(); entity.SetEntityId("entity id"); entity.SetEntityType("entity type"); entity.SetStartTime(Runtime.CurrentTimeMillis()); for (int i = 0; i < 2; ++i) { TimelineEvent @event = new TimelineEvent(); @event.SetTimestamp(Runtime.CurrentTimeMillis()); @event.SetEventType("test event type " + i); @event.AddEventInfo("key1", "val1"); @event.AddEventInfo("key2", "val2"); entity.AddEvent(@event); } entity.AddRelatedEntity("test ref type 1", "test ref id 1"); entity.AddRelatedEntity("test ref type 2", "test ref id 2"); entity.AddPrimaryFilter("pkey1", "pval1"); entity.AddPrimaryFilter("pkey2", "pval2"); entity.AddOtherInfo("okey1", "oval1"); entity.AddOtherInfo("okey2", "oval2"); entity.SetDomainId("domain id 1"); return(entity); }
public virtual void TestPutEntities() { TestTimelineWebServicesWithSSL.TestTimelineClient client = new TestTimelineWebServicesWithSSL.TestTimelineClient (); try { client.Init(conf); client.Start(); TimelineEntity expectedEntity = new TimelineEntity(); expectedEntity.SetEntityType("test entity type"); expectedEntity.SetEntityId("test entity id"); expectedEntity.SetDomainId("test domain id"); TimelineEvent @event = new TimelineEvent(); @event.SetEventType("test event type"); @event.SetTimestamp(0L); expectedEntity.AddEvent(@event); TimelinePutResponse response = client.PutEntities(expectedEntity); NUnit.Framework.Assert.AreEqual(0, response.GetErrors().Count); NUnit.Framework.Assert.IsTrue(client.resp.ToString().Contains("https")); TimelineEntity actualEntity = store.GetEntity(expectedEntity.GetEntityId(), expectedEntity .GetEntityType(), EnumSet.AllOf <TimelineReader.Field>()); NUnit.Framework.Assert.IsNotNull(actualEntity); NUnit.Framework.Assert.AreEqual(expectedEntity.GetEntityId(), actualEntity.GetEntityId ()); NUnit.Framework.Assert.AreEqual(expectedEntity.GetEntityType(), actualEntity.GetEntityType ()); } finally { client.Stop(); client.Close(); } }
private void PublishApplicationACLsUpdatedEvent(ApplicationACLsUpdatedEvent @event ) { TimelineEntity entity = CreateApplicationEntity(@event.GetApplicationId()); TimelineEvent tEvent = new TimelineEvent(); IDictionary <string, object> entityInfo = new Dictionary <string, object>(); entityInfo[ApplicationMetricsConstants.AppViewAclsEntityInfo] = @event.GetViewAppACLs (); entity.SetOtherInfo(entityInfo); tEvent.SetEventType(ApplicationMetricsConstants.AclsUpdatedEventType); tEvent.SetTimestamp(@event.GetTimestamp()); entity.AddEvent(tEvent); PutEntity(entity); }
private void PublishContainerFinishedEvent(ContainerFinishedEvent @event) { TimelineEntity entity = CreateContainerEntity(@event.GetContainerId()); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(ContainerMetricsConstants.FinishedEventType); tEvent.SetTimestamp(@event.GetTimestamp()); IDictionary <string, object> eventInfo = new Dictionary <string, object>(); eventInfo[ContainerMetricsConstants.DiagnosticsInfoEventInfo] = @event.GetDiagnosticsInfo (); eventInfo[ContainerMetricsConstants.ExitStatusEventInfo] = @event.GetContainerExitStatus (); eventInfo[ContainerMetricsConstants.StateEventInfo] = @event.GetContainerState(). ToString(); tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); PutEntity(entity); }
private static TimelineEntity CreateAppAttemptTimelineEntity(ApplicationAttemptId appAttemptId) { TimelineEntity entity = new TimelineEntity(); entity.SetEntityType(AppAttemptMetricsConstants.EntityType); entity.SetEntityId(appAttemptId.ToString()); entity.SetDomainId(TimelineDataManager.DefaultDomainId); entity.AddPrimaryFilter(AppAttemptMetricsConstants.ParentPrimaryFilter, appAttemptId .GetApplicationId().ToString()); entity.AddPrimaryFilter(TimelineStore.SystemFilter.EntityOwner.ToString(), "yarn" ); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(AppAttemptMetricsConstants.RegisteredEventType); tEvent.SetTimestamp(int.MaxValue + 1L); IDictionary <string, object> eventInfo = new Dictionary <string, object>(); eventInfo[AppAttemptMetricsConstants.TrackingUrlEventInfo] = "test tracking url"; eventInfo[AppAttemptMetricsConstants.OriginalTrackingUrlEventInfo] = "test original tracking url"; eventInfo[AppAttemptMetricsConstants.HostEventInfo] = "test host"; eventInfo[AppAttemptMetricsConstants.RpcPortEventInfo] = 100; eventInfo[AppAttemptMetricsConstants.MasterContainerEventInfo] = ContainerId.NewContainerId (appAttemptId, 1); tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); tEvent = new TimelineEvent(); tEvent.SetEventType(AppAttemptMetricsConstants.FinishedEventType); tEvent.SetTimestamp(int.MaxValue + 2L); eventInfo = new Dictionary <string, object>(); eventInfo[AppAttemptMetricsConstants.TrackingUrlEventInfo] = "test tracking url"; eventInfo[AppAttemptMetricsConstants.OriginalTrackingUrlEventInfo] = "test original tracking url"; eventInfo[AppAttemptMetricsConstants.DiagnosticsInfoEventInfo] = "test diagnostics info"; eventInfo[AppAttemptMetricsConstants.FinalStatusEventInfo] = FinalApplicationStatus .Undefined.ToString(); eventInfo[AppAttemptMetricsConstants.StateEventInfo] = YarnApplicationAttemptState .Finished.ToString(); tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); return(entity); }
private void PublishAppAttemptRegisteredEvent(AppAttemptRegisteredEvent @event) { TimelineEntity entity = CreateAppAttemptEntity(@event.GetApplicationAttemptId()); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(AppAttemptMetricsConstants.RegisteredEventType); tEvent.SetTimestamp(@event.GetTimestamp()); IDictionary <string, object> eventInfo = new Dictionary <string, object>(); eventInfo[AppAttemptMetricsConstants.TrackingUrlEventInfo] = @event.GetTrackingUrl (); eventInfo[AppAttemptMetricsConstants.OriginalTrackingUrlEventInfo] = @event.GetOriginalTrackingURL (); eventInfo[AppAttemptMetricsConstants.HostEventInfo] = @event.GetHost(); eventInfo[AppAttemptMetricsConstants.RpcPortEventInfo] = @event.GetRpcPort(); eventInfo[AppAttemptMetricsConstants.MasterContainerEventInfo] = @event.GetMasterContainerId ().ToString(); tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); PutEntity(entity); }
private void PublishApplicationCreatedEvent(ApplicationCreatedEvent @event) { TimelineEntity entity = CreateApplicationEntity(@event.GetApplicationId()); IDictionary <string, object> entityInfo = new Dictionary <string, object>(); entityInfo[ApplicationMetricsConstants.NameEntityInfo] = @event.GetApplicationName (); entityInfo[ApplicationMetricsConstants.TypeEntityInfo] = @event.GetApplicationType (); entityInfo[ApplicationMetricsConstants.UserEntityInfo] = @event.GetUser(); entityInfo[ApplicationMetricsConstants.QueueEntityInfo] = @event.GetQueue(); entityInfo[ApplicationMetricsConstants.SubmittedTimeEntityInfo] = @event.GetSubmittedTime (); entity.SetOtherInfo(entityInfo); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(ApplicationMetricsConstants.CreatedEventType); tEvent.SetTimestamp(@event.GetTimestamp()); entity.AddEvent(tEvent); PutEntity(entity); }
private void PublishAppAttemptFinishedEvent(AppAttemptFinishedEvent @event) { TimelineEntity entity = CreateAppAttemptEntity(@event.GetApplicationAttemptId()); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(AppAttemptMetricsConstants.FinishedEventType); tEvent.SetTimestamp(@event.GetTimestamp()); IDictionary <string, object> eventInfo = new Dictionary <string, object>(); eventInfo[AppAttemptMetricsConstants.TrackingUrlEventInfo] = @event.GetTrackingUrl (); eventInfo[AppAttemptMetricsConstants.OriginalTrackingUrlEventInfo] = @event.GetOriginalTrackingURL (); eventInfo[AppAttemptMetricsConstants.DiagnosticsInfoEventInfo] = @event.GetDiagnosticsInfo (); eventInfo[AppAttemptMetricsConstants.FinalStatusEventInfo] = @event.GetFinalApplicationStatus ().ToString(); eventInfo[AppAttemptMetricsConstants.StateEventInfo] = @event.GetYarnApplicationAttemptState ().ToString(); tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); PutEntity(entity); }
private static TimelineEntity CreateContainerEntity(ContainerId containerId) { TimelineEntity entity = new TimelineEntity(); entity.SetEntityType(ContainerMetricsConstants.EntityType); entity.SetEntityId(containerId.ToString()); entity.SetDomainId(TimelineDataManager.DefaultDomainId); entity.AddPrimaryFilter(ContainerMetricsConstants.ParentPrimariyFilter, containerId .GetApplicationAttemptId().ToString()); entity.AddPrimaryFilter(TimelineStore.SystemFilter.EntityOwner.ToString(), "yarn" ); IDictionary <string, object> entityInfo = new Dictionary <string, object>(); entityInfo[ContainerMetricsConstants.AllocatedMemoryEntityInfo] = -1; entityInfo[ContainerMetricsConstants.AllocatedVcoreEntityInfo] = -1; entityInfo[ContainerMetricsConstants.AllocatedHostEntityInfo] = "test host"; entityInfo[ContainerMetricsConstants.AllocatedPortEntityInfo] = 100; entityInfo[ContainerMetricsConstants.AllocatedPriorityEntityInfo] = -1; entity.SetOtherInfo(entityInfo); TimelineEvent tEvent = new TimelineEvent(); tEvent.SetEventType(ContainerMetricsConstants.CreatedEventType); tEvent.SetTimestamp(int.MaxValue + 1L); entity.AddEvent(tEvent); tEvent = new TimelineEvent(); tEvent.SetEventType(ContainerMetricsConstants.FinishedEventType); tEvent.SetTimestamp(int.MaxValue + 2L); IDictionary <string, object> eventInfo = new Dictionary <string, object>(); eventInfo[ContainerMetricsConstants.DiagnosticsInfoEventInfo] = "test diagnostics info"; eventInfo[ContainerMetricsConstants.ExitStatusEventInfo] = -1; eventInfo[ContainerMetricsConstants.StateEventInfo] = ContainerState.Complete.ToString (); tEvent.SetEventInfo(eventInfo); entity.AddEvent(tEvent); return(entity); }