diff --git a/metrics/cgroups/cgroups.go b/metrics/cgroups/cgroups.go index 1fb3ea373..6752a0f24 100644 --- a/metrics/cgroups/cgroups.go +++ b/metrics/cgroups/cgroups.go @@ -3,6 +3,7 @@ package cgroups import ( + "fmt" "time" "github.com/containerd/cgroups" @@ -45,8 +46,12 @@ type cgroupsMonitor struct { events chan<- *plugin.Event } +func getID(t plugin.Task) string { + return fmt.Sprintf("%s-%s", t.Info().ID, t.Info().Namespace) +} + func (m *cgroupsMonitor) Monitor(c plugin.Task) error { - id := c.Info().ID + id := getID(c) state, err := c.State(m.context) if err != nil { return err @@ -62,7 +67,7 @@ func (m *cgroupsMonitor) Monitor(c plugin.Task) error { } func (m *cgroupsMonitor) Stop(c plugin.Task) error { - m.collector.Remove(c.Info().ID) + m.collector.Remove(getID(c)) return nil } diff --git a/spec_unix.go b/spec_unix.go index f0b071068..c74d88e5f 100644 --- a/spec_unix.go +++ b/spec_unix.go @@ -155,6 +155,7 @@ func createDefaultSpec() (*specs.Spec, error) { }, }, Linux: &specs.Linux{ + // TODO (@crosbymichael) make sure we don't have have two containers in the same cgroup Resources: &specs.LinuxResources{ Devices: []specs.LinuxDeviceCgroup{ {