diff --git a/render/container.go b/render/container.go index dbec44a0d..81e426771 100644 --- a/render/container.go +++ b/render/container.go @@ -45,13 +45,7 @@ var ContainerRenderer = MakeFilter( ), ) -var mapEndpoint2IP = MakeMap( - endpoint2IP, - // We drop endpoint nodes which were procspied, as they will be - // joined to containers through the process topology, and we don't - // want to double count edges. - MakeFilter(Complement(procspied), SelectEndpoint), -) +var mapEndpoint2IP = MakeMap(endpoint2IP, SelectEndpoint) const originalNodeID = "original_node_id" const originalNodeTopology = "original_node_topology" @@ -121,8 +115,11 @@ func endpoint2IP(m report.Node, local report.Networks) report.Nodes { return report.Nodes{} } - if externalNode, ok := NewDerivedExternalNode(m, addr, local); ok { - return report.Nodes{externalNode.ID: externalNode} + // Nodes without a hostid may be pseudo nodes + if _, ok := m.Latest.Lookup(report.HostNodeID); !ok { + if externalNode, ok := NewDerivedExternalNode(m, addr, local); ok { + return report.Nodes{externalNode.ID: externalNode} + } } // We also allow for joining on ip:port pairs. This is useful for diff --git a/render/filters.go b/render/filters.go index 8cf384618..1bd8520c2 100644 --- a/render/filters.go +++ b/render/filters.go @@ -5,7 +5,6 @@ import ( "github.com/weaveworks/common/mtime" "github.com/weaveworks/scope/probe/docker" - "github.com/weaveworks/scope/probe/endpoint" "github.com/weaveworks/scope/probe/kubernetes" "github.com/weaveworks/scope/report" ) @@ -237,25 +236,6 @@ func IsRunning(n report.Node) bool { // IsStopped checks if the node is *not* a running docker container var IsStopped = Complement(IsRunning) -func procspied(node report.Node) bool { - _, ok := node.Latest.Lookup(endpoint.Procspied) - return ok -} - -func procspiedOrEBPF(node report.Node) bool { - if procspied(node) { - return true - } - _, ok := node.Latest.Lookup(endpoint.EBPF) - return ok -} - -// FilterProcspiedOrEBPF keeps only endpoints which were found via -// procspy or eBPF. -func FilterProcspiedOrEBPF(r Renderer) Renderer { - return MakeFilter(procspiedOrEBPF, r) -} - // IsApplication checks if the node is an "application" node func IsApplication(n report.Node) bool { containerName, _ := n.Latest.Lookup(docker.ContainerName) diff --git a/render/process.go b/render/process.go index 1f19c8c60..c6ce509b7 100644 --- a/render/process.go +++ b/render/process.go @@ -22,7 +22,7 @@ func renderProcesses(rpt report.Report) bool { } // EndpointRenderer is a Renderer which produces a renderable endpoint graph. -var EndpointRenderer = FilterProcspiedOrEBPF(SelectEndpoint) +var EndpointRenderer = SelectEndpoint // ProcessRenderer is a Renderer which produces a renderable process // graph by merging the endpoint graph and the process topology.