mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-04 02:30:45 +00:00
Merge pull request #1398 from weaveworks/1212-whitelist
Don't merge nodes in the rendering pipeline
This commit is contained in:
@@ -39,7 +39,7 @@ var ContainerRenderer = MakeFilter(
|
||||
},
|
||||
MakeMap(
|
||||
MapProcess2Container,
|
||||
ColorConnected(ProcessRenderer),
|
||||
ProcessRenderer,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -273,6 +273,8 @@ func MapProcess2Container(n report.Node, _ report.Networks) report.Nodes {
|
||||
} else {
|
||||
id = MakePseudoNodeID(UncontainedID, report.ExtractHostID(n))
|
||||
node = NewDerivedPseudoNode(id, n)
|
||||
node = propagateLatest(report.HostNodeID, n, node)
|
||||
node = propagateLatest(IsConnected, n, node)
|
||||
}
|
||||
return report.Nodes{id: node}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ var HostRenderer = MakeReduce(
|
||||
),
|
||||
MakeMap(
|
||||
MapX2Host,
|
||||
ColorConnected(ProcessRenderer),
|
||||
ProcessRenderer,
|
||||
),
|
||||
MakeMap(
|
||||
MapX2Host,
|
||||
|
||||
@@ -18,10 +18,11 @@ func MakeGroupNodeTopology(originalTopology, key string) string {
|
||||
|
||||
// NewDerivedNode makes a node based on node, but with a new ID
|
||||
func NewDerivedNode(id string, node report.Node) report.Node {
|
||||
return node.WithID(id).WithChildren(report.MakeNodeSet(node)).PruneParents()
|
||||
return report.MakeNode(id).WithChildren(node.Children.Add(node))
|
||||
}
|
||||
|
||||
// NewDerivedPseudoNode makes a new pseudo node with the node as a child
|
||||
func NewDerivedPseudoNode(id string, node report.Node) report.Node {
|
||||
return NewDerivedNode(id, node).WithTopology(Pseudo)
|
||||
output := NewDerivedNode(id, node).WithTopology(Pseudo)
|
||||
return output
|
||||
}
|
||||
|
||||
@@ -28,13 +28,13 @@ var EndpointRenderer = FilterNonProcspied(SelectEndpoint)
|
||||
|
||||
// ProcessRenderer is a Renderer which produces a renderable process
|
||||
// graph by merging the endpoint graph and the process topology.
|
||||
var ProcessRenderer = MakeReduce(
|
||||
var ProcessRenderer = ColorConnected(MakeReduce(
|
||||
MakeMap(
|
||||
MapEndpoint2Process,
|
||||
EndpointRenderer,
|
||||
),
|
||||
SelectProcess,
|
||||
)
|
||||
))
|
||||
|
||||
// processWithContainerNameRenderer is a Renderer which produces a process
|
||||
// graph enriched with container names where appropriate
|
||||
|
||||
@@ -151,3 +151,10 @@ func (ad applyDecorator) Stats(rpt report.Report, dct Decorator) Stats {
|
||||
func ApplyDecorators(renderer Renderer) Renderer {
|
||||
return applyDecorator{renderer}
|
||||
}
|
||||
|
||||
func propagateLatest(key string, from, to report.Node) report.Node {
|
||||
if value, timestamp, ok := from.Latest.LookupEntry(key); ok {
|
||||
to.Latest = to.Latest.Set(key, timestamp, value)
|
||||
}
|
||||
return to
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user