From 262cea2797a2d74f41ed00e1b0bfebb15609448a Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Sun, 18 Feb 2018 18:42:26 +0000 Subject: [PATCH] More efficient docker Tagger Augment existing node rather than creating a new one then merging it, and avoid creating a set with one entry. --- probe/docker/tagger.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/probe/docker/tagger.go b/probe/docker/tagger.go index d53bc0169..c224d0912 100644 --- a/probe/docker/tagger.go +++ b/probe/docker/tagger.go @@ -4,6 +4,7 @@ import ( "strconv" "strings" + "github.com/weaveworks/common/mtime" "github.com/weaveworks/scope/probe/process" "github.com/weaveworks/scope/report" ) @@ -80,7 +81,7 @@ func (t *Tagger) Tag(r report.Report) (report.Report, error) { } func (t *Tagger) tag(tree process.Tree, topology *report.Topology) { - for nodeID, node := range topology.Nodes { + for _, node := range topology.Nodes { pidStr, ok := node.Latest.Lookup(process.PID) if !ok { continue @@ -114,9 +115,8 @@ func (t *Tagger) tag(tree process.Tree, topology *report.Topology) { continue } - node := report.MakeNodeWith(nodeID, map[string]string{ - ContainerID: c.ID(), - }).WithParents(report.MakeSets(). + node = node.WithLatest(ContainerID, mtime.Now(), c.ID()) + node = node.WithParents(report.MakeSets(). Add(report.Container, report.MakeStringSet(report.MakeContainerNodeID(c.ID()))), ) @@ -129,6 +129,6 @@ func (t *Tagger) tag(tree process.Tree, topology *report.Topology) { ) } - topology.AddNode(node) + topology.ReplaceNode(node) } }