Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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();
     }
 }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }