mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-28 17:51:21 +00:00
Remove explicit listing of api topologies in render/detailed/node specs
Instead, we can infer them from the render topology and the primaryAPITopology map
This commit is contained in:
@@ -134,8 +134,7 @@ var (
|
||||
{
|
||||
topologyID: report.Host,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "hosts",
|
||||
Label: "Hosts",
|
||||
Label: "Hosts",
|
||||
Columns: []Column{
|
||||
{ID: host.CPUUsage, Label: "CPU", Datatype: "number"},
|
||||
{ID: host.MemoryUsage, Label: "Memory", Datatype: "number"},
|
||||
@@ -145,8 +144,7 @@ var (
|
||||
{
|
||||
topologyID: report.Service,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "services",
|
||||
Label: "Services",
|
||||
Label: "Services",
|
||||
Columns: []Column{
|
||||
{ID: report.Pod, Label: "# Pods", Datatype: "number"},
|
||||
{ID: kubernetes.IP, Label: "IP", Datatype: "ip"},
|
||||
@@ -156,8 +154,7 @@ var (
|
||||
{
|
||||
topologyID: report.ReplicaSet,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "replica-sets",
|
||||
Label: "Replica Sets",
|
||||
Label: "Replica Sets",
|
||||
Columns: []Column{
|
||||
{ID: report.Pod, Label: "# Pods", Datatype: "number"},
|
||||
{ID: kubernetes.ObservedGeneration, Label: "Observed Gen.", Datatype: "number"},
|
||||
@@ -167,8 +164,7 @@ var (
|
||||
{
|
||||
topologyID: report.Pod,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "pods",
|
||||
Label: "Pods",
|
||||
Label: "Pods",
|
||||
|
||||
Columns: []Column{
|
||||
{ID: kubernetes.State, Label: "State"},
|
||||
@@ -180,8 +176,7 @@ var (
|
||||
{
|
||||
topologyID: report.ECSService,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "ecs-services",
|
||||
Label: "Services",
|
||||
Label: "Services",
|
||||
Columns: []Column{
|
||||
{ID: awsecs.ServiceRunningCount, Label: "Running", Datatype: "number"},
|
||||
{ID: awsecs.ServiceDesiredCount, Label: "Desired", Datatype: "number"},
|
||||
@@ -191,8 +186,7 @@ var (
|
||||
{
|
||||
topologyID: report.ECSTask,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "ecs-tasks",
|
||||
Label: "Tasks",
|
||||
Label: "Tasks",
|
||||
Columns: []Column{
|
||||
{ID: awsecs.CreatedAt, Label: "Created At", Datatype: "datetime"},
|
||||
},
|
||||
@@ -201,8 +195,7 @@ var (
|
||||
{
|
||||
topologyID: report.Container,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "containers",
|
||||
Label: "Containers", Columns: []Column{
|
||||
Label: "Containers", Columns: []Column{
|
||||
{ID: docker.CPUTotalUsage, Label: "CPU", Datatype: "number"},
|
||||
{ID: docker.MemoryUsage, Label: "Memory", Datatype: "number"},
|
||||
},
|
||||
@@ -211,8 +204,7 @@ var (
|
||||
{
|
||||
topologyID: report.Process,
|
||||
NodeSummaryGroup: NodeSummaryGroup{
|
||||
TopologyID: "processes",
|
||||
Label: "Processes", Columns: []Column{
|
||||
Label: "Processes", Columns: []Column{
|
||||
{ID: process.PID, Label: "PID", Datatype: "number"},
|
||||
{ID: process.CPUUsage, Label: "CPU", Datatype: "number"},
|
||||
{ID: process.MemoryUsage, Label: "Memory", Datatype: "number"},
|
||||
@@ -248,13 +240,19 @@ func children(r report.Report, n report.Node) []NodeSummaryGroup {
|
||||
nodeSummaryGroups := []NodeSummaryGroup{}
|
||||
// Apply specific group specs in the order they're listed
|
||||
for _, spec := range nodeSummaryGroupSpecs {
|
||||
if len(summaries[spec.topologyID]) > 0 {
|
||||
sort.Sort(nodeSummariesByID(summaries[spec.TopologyID]))
|
||||
group := spec.NodeSummaryGroup
|
||||
group.Nodes = summaries[spec.topologyID]
|
||||
nodeSummaryGroups = append(nodeSummaryGroups, group)
|
||||
delete(summaries, spec.topologyID)
|
||||
if len(summaries[spec.topologyID]) == 0 {
|
||||
continue
|
||||
}
|
||||
apiTopology, ok := primaryAPITopology[spec.topologyID]
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
sort.Sort(nodeSummariesByID(summaries[spec.topologyID]))
|
||||
group := spec.NodeSummaryGroup
|
||||
group.Nodes = summaries[spec.topologyID]
|
||||
group.TopologyID = apiTopology
|
||||
nodeSummaryGroups = append(nodeSummaryGroups, group)
|
||||
delete(summaries, spec.topologyID)
|
||||
}
|
||||
// As a fallback, in case a topology has no group spec defined, add any remaining at the end
|
||||
for topologyID, nodeSummaries := range summaries {
|
||||
@@ -271,9 +269,9 @@ func children(r report.Report, n report.Node) []NodeSummaryGroup {
|
||||
}
|
||||
sort.Sort(nodeSummariesByID(nodeSummaries))
|
||||
group := NodeSummaryGroup{
|
||||
ID: apiTopology,
|
||||
Label: topology.LabelPlural,
|
||||
Columns: []Column{},
|
||||
TopologyID: apiTopology,
|
||||
Label: topology.LabelPlural,
|
||||
Columns: []Column{},
|
||||
}
|
||||
nodeSummaryGroups = append(nodeSummaryGroups, group)
|
||||
}
|
||||
|
||||
@@ -84,6 +84,7 @@ var templates = map[string]struct{ Label, LabelMinor string }{
|
||||
|
||||
// For each report.Topology, map to a 'primary' API topology. This can then be used in a variety of places.
|
||||
var primaryAPITopology = map[string]string{
|
||||
report.Process: "processes",
|
||||
report.Container: "containers",
|
||||
report.ContainerImage: "containers-by-image",
|
||||
report.Pod: "pods",
|
||||
|
||||
Reference in New Issue
Block a user