mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-28 09:41:57 +00:00
filter out unconnected pseudo nodes on the outside
The change is necessitated by the removal of procspied/ebpf endpoint filtering in the renderers, as a result of which the odd conntracked-only, unconnected pseudo node can sneak through. This new way of doing things also makes renderers more composable and robust, and more directly reflects the objective: - in the process topologies, filter out all unconnected nodes - in all other topologies, filter out unconnected pseudo nodes
This commit is contained in:
@@ -68,13 +68,13 @@ func ConnectionJoin(r Renderer, toIPs func(report.Node) []string) Renderer {
|
||||
return result
|
||||
}
|
||||
|
||||
return FilterUnconnected(MakeMap(
|
||||
return MakeMap(
|
||||
ipToNode,
|
||||
MakeReduce(
|
||||
MakeMap(nodeToIP, r),
|
||||
mapEndpoint2IP,
|
||||
),
|
||||
))
|
||||
)
|
||||
}
|
||||
|
||||
func ipToNode(n report.Node, _ report.Networks) report.Nodes {
|
||||
|
||||
@@ -215,7 +215,7 @@ func Complement(f FilterFunc) FilterFunc {
|
||||
// FilterUnconnected produces a renderer that filters unconnected nodes
|
||||
// from the given renderer
|
||||
func FilterUnconnected(r Renderer) Renderer {
|
||||
return MakeFilter(
|
||||
return MakeFilterPseudo(
|
||||
func(node report.Node) bool {
|
||||
_, ok := node.Latest.Lookup(IsConnected)
|
||||
return ok
|
||||
@@ -224,6 +224,21 @@ func FilterUnconnected(r Renderer) Renderer {
|
||||
)
|
||||
}
|
||||
|
||||
// FilterUnconnectedPseudo produces a renderer that filters
|
||||
// unconnected pseudo nodes from the given renderer
|
||||
func FilterUnconnectedPseudo(r Renderer) Renderer {
|
||||
return MakeFilterPseudo(
|
||||
func(node report.Node) bool {
|
||||
if !IsPseudoTopology(node) {
|
||||
return true
|
||||
}
|
||||
_, ok := node.Latest.Lookup(IsConnected)
|
||||
return ok
|
||||
},
|
||||
ColorConnected(r),
|
||||
)
|
||||
}
|
||||
|
||||
// Noop allows all nodes through
|
||||
func Noop(_ report.Node) bool { return true }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user