agent/stats/engine.go
func (engine *DockerStatsEngine) handleDockerEvents(events ...interface{}) error {
	for _, event := range events {
		dockerContainerChangeEvent, ok := event.(dockerapi.DockerContainerChangeEvent)
		if !ok {
			return fmt.Errorf("Unexpected event received, expected docker container change event")
		}

		switch dockerContainerChangeEvent.Status {
		case apicontainerstatus.ContainerRunning:
			engine.addAndStartStatsContainer(dockerContainerChangeEvent.DockerID)
		case apicontainerstatus.ContainerStopped:
			engine.removeContainer(dockerContainerChangeEvent.DockerID)
		default:
			seelog.Debugf("Ignoring event for container, id: %s, status: %d", dockerContainerChangeEvent.DockerID, dockerContainerChangeEvent.Status)
		}
	}

	return nil
}
func (engine *DockerStatsEngine) handleDockerEvents(events ...interface{}) error {
	for _, event := range events {
		dockerContainerChangeEvent, ok := event.(dockerapi.DockerContainerChangeEvent)
		if !ok {
			return fmt.Errorf("Unexpected event received, expected docker container change event")
		}

		switch dockerContainerChangeEvent.Status {
		case apicontainerstatus.ContainerRunning:
			engine.addAndStartStatsContainer(dockerContainerChangeEvent.DockerID)
		case apicontainerstatus.ContainerStopped:
			engine.removeContainer(dockerContainerChangeEvent.DockerID)
		default:
			seelog.Debugf("Ignoring event for container, id: %s, status: %d", dockerContainerChangeEvent.DockerID, dockerContainerChangeEvent.Status)
		}
	}

	return nil
}
func ( engine * DockerStatsEngine ) handleDockerEvents ( events ... interface { } ) error { for _ , event := range events { dockerContainerChangeEvent , ok := event . ( dockerapi . DockerContainerChangeEvent ) if ! ok { return fmt . Errorf ( " " ) } switch dockerContainerChangeEvent . Status { case apicontainerstatus . ContainerRunning : engine . addAndStartStatsContainer ( dockerContainerChangeEvent . DockerID ) case apicontainerstatus . ContainerStopped : engine . removeContainer ( dockerContainerChangeEvent . DockerID ) default : seelog . Debugf ( " " , dockerContainerChangeEvent . DockerID , dockerContainerChangeEvent . Status ) } } return nil }
// handleDockerEvents must be called after openEventstream; it processes each
// event that it reads from the docker event stream.
handleDockerEvents must be called after openEventstream ; it processes each event that it reads from the docker event stream .