Added container event monitoring

This commit is contained in:
Katie Knister 2015-03-03 18:14:36 -08:00
parent 98d368e7ac
commit 6ffb8454b0

View File

@ -98,6 +98,7 @@ func New(memoryStorage *memory.InMemoryStorage, sysfs sysfs.SysFs) (Manager, err
quitChannels: make([]chan error, 0, 2), quitChannels: make([]chan error, 0, 2),
memoryStorage: memoryStorage, memoryStorage: memoryStorage,
cadvisorContainer: selfContainer, cadvisorContainer: selfContainer,
startupTime: time.Now(),
} }
machineInfo, err := getMachineInfo(sysfs) machineInfo, err := getMachineInfo(sysfs)
@ -151,6 +152,7 @@ type manager struct {
dockerContainersRegexp *regexp.Regexp dockerContainersRegexp *regexp.Regexp
loadReader cpuload.CpuLoadReader loadReader cpuload.CpuLoadReader
eventHandler events.EventManager eventHandler events.EventManager
startupTime time.Time
} }
// Start the container manager. // Start the container manager.
@ -488,6 +490,29 @@ func (m *manager) createContainer(containerName string) error {
} }
glog.Infof("Added container: %q (aliases: %v, namespace: %q)", containerName, cont.info.Aliases, cont.info.Namespace) glog.Infof("Added container: %q (aliases: %v, namespace: %q)", containerName, cont.info.Aliases, cont.info.Namespace)
contSpecs, err := cont.handler.GetSpec()
if err != nil {
return err
}
if contSpecs.CreationTime.After(m.startupTime) {
contRef, err := cont.handler.ContainerReference()
if err != nil {
return err
}
newEvent := &events.Event{
ContainerName: contRef.Name,
EventData: contSpecs,
Timestamp: contSpecs.CreationTime,
EventType: events.TypeContainerCreation,
}
err = m.eventHandler.AddEvent(newEvent)
if err != nil {
return err
}
}
// Start the container's housekeeping. // Start the container's housekeeping.
cont.Start() cont.Start()
@ -522,6 +547,21 @@ func (m *manager) destroyContainer(containerName string) error {
}) })
} }
glog.Infof("Destroyed container: %q (aliases: %v, namespace: %q)", containerName, cont.info.Aliases, cont.info.Namespace) glog.Infof("Destroyed container: %q (aliases: %v, namespace: %q)", containerName, cont.info.Aliases, cont.info.Namespace)
contRef, err := cont.handler.ContainerReference()
if err != nil {
return err
}
newEvent := &events.Event{
ContainerName: contRef.Name,
Timestamp: time.Now(),
EventType: events.TypeContainerDeletion,
}
err = m.eventHandler.AddEvent(newEvent)
if err != nil {
return err
}
return nil return nil
} }