Added container event monitoring
This commit is contained in:
parent
98d368e7ac
commit
6ffb8454b0
@ -98,6 +98,7 @@ func New(memoryStorage *memory.InMemoryStorage, sysfs sysfs.SysFs) (Manager, err
|
||||
quitChannels: make([]chan error, 0, 2),
|
||||
memoryStorage: memoryStorage,
|
||||
cadvisorContainer: selfContainer,
|
||||
startupTime: time.Now(),
|
||||
}
|
||||
|
||||
machineInfo, err := getMachineInfo(sysfs)
|
||||
@ -151,6 +152,7 @@ type manager struct {
|
||||
dockerContainersRegexp *regexp.Regexp
|
||||
loadReader cpuload.CpuLoadReader
|
||||
eventHandler events.EventManager
|
||||
startupTime time.Time
|
||||
}
|
||||
|
||||
// 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)
|
||||
|
||||
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.
|
||||
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)
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user