Add Weave summary generator and fix Weave renderer

This commit is contained in:
Alfonso Acosta
2016-10-26 07:40:14 +00:00
parent e80a01aab9
commit 3023f4be80
3 changed files with 24 additions and 6 deletions

View File

@@ -84,7 +84,7 @@ func handleWebsocket(
for { // just discard everything the browser sends
if _, _, err := c.ReadMessage(); err != nil {
if !xfer.IsExpectedWSCloseError(err) {
log.Println("err:", err)
log.Error("err:", err)
}
close(quit)
break

View File

@@ -8,6 +8,7 @@ import (
"github.com/weaveworks/scope/probe/endpoint"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/probe/kubernetes"
"github.com/weaveworks/scope/probe/overlay"
"github.com/weaveworks/scope/probe/process"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/report"
@@ -68,6 +69,7 @@ var renderers = map[string]func(NodeSummary, report.Node) (NodeSummary, bool){
report.Deployment: podGroupNodeSummary,
report.ReplicaSet: podGroupNodeSummary,
report.Host: hostNodeSummary,
report.Overlay: weaveNodeSummary,
}
var templates = map[string]struct{ Label, LabelMinor string }{
@@ -253,6 +255,18 @@ func hostNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) {
return base, true
}
func weaveNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) {
var (
nickname, _ = n.Latest.Lookup(overlay.WeavePeerNickName)
)
_, peerName := report.ParseOverlayNodeID(n.ID)
base.Label, base.LabelMinor = nickname, peerName
return base, true
}
// groupNodeSummary renders the summary for a group node. n.Topology is
// expected to be of the form: group:container:hostname
func groupNodeSummary(base NodeSummary, r report.Report, n report.Node) (NodeSummary, bool) {
@@ -298,6 +312,7 @@ type NodeSummaries map[string]NodeSummary
// Summaries converts RenderableNodes into a set of NodeSummaries
func Summaries(r report.Report, rns report.Nodes) NodeSummaries {
result := NodeSummaries{}
for id, node := range rns {
if summary, ok := MakeNodeSummary(r, node); ok {

View File

@@ -13,17 +13,20 @@ var WeaveRenderer = MakeMap(
// MapWeaveIdentity maps an overlay topology node to a weave topology node.
func MapWeaveIdentity(m report.Node, _ report.Networks) report.Nodes {
peerPrefix, peerName := report.ParseOverlayNodeID(m.ID)
peerPrefix, _ := report.ParseOverlayNodeID(m.ID)
if peerPrefix != report.WeaveOverlayPeerPrefix {
return nil
}
var node = NewDerivedNode(peerName, m)
var (
node = m
nickname, _ = m.Latest.Lookup(overlay.WeavePeerNickName)
)
if _, ok := node.Latest.Lookup(report.HostNodeID); !ok {
nickname, _ := m.Latest.Lookup(overlay.WeavePeerNickName)
id := MakePseudoNodeID(UnmanagedID, nickname)
node = NewDerivedPseudoNode(id, m)
}
return report.Nodes{peerName: node}
return report.Nodes{node.ID: node}
}