Skip to content

Commit bef3514

Browse files
committed
#224 Subscribe to only those events that we handling
1 parent 9b6520f commit bef3514

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

connector/docker.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/bcicen/ctop/connector/manager"
88
"github.com/bcicen/ctop/container"
99
"github.com/docker/docker/api/types"
10+
"github.com/docker/docker/api/types/filters"
1011
"github.com/docker/docker/api/types/network"
1112
"github.com/docker/docker/client"
1213
"github.com/docker/go-connections/nat"
@@ -19,7 +20,6 @@ import (
1920
func init() { enabled["docker"] = NewDocker }
2021

2122
var actionToStatus = map[string]string{
22-
"create": "created",
2323
"start": "running",
2424
"die": "exited",
2525
"stop": "exited",
@@ -85,14 +85,20 @@ func (cm *Docker) Wait() struct{} { return <-cm.closed }
8585
func (cm *Docker) watchEvents() {
8686
log.Info("docker event listener starting")
8787
ctx := context.Background()
88-
eventsOpts := types.EventsOptions{}
88+
filter := filters.NewArgs()
89+
filter.Add("type", "container")
90+
filter.Add("event", "health_status")
91+
filter.Add("event", "create")
92+
filter.Add("event", "destroy")
93+
filter.Add("event", "start")
94+
filter.Add("event", "die")
95+
filter.Add("event", "stop")
96+
filter.Add("event", "pause")
97+
filter.Add("event", "unpause")
98+
eventsOpts := types.EventsOptions{Filters: filter}
8999
events, _ := cm.client.Events(ctx, eventsOpts)
90100

91101
for e := range events {
92-
if e.Type != "container" {
93-
continue
94-
}
95-
96102
actionName := e.Action
97103
// fast skip all exec_* events: exec_create, exec_start, exec_die
98104
if strings.HasPrefix(actionName, "exec_") {

0 commit comments

Comments
 (0)