Move host-related names out of probe code

Reduce the dependency on low-level libraries
This commit is contained in:
Bryan Boreham
2019-09-12 13:21:32 +00:00
parent 85bcc5fd6f
commit 15467d7310
14 changed files with 58 additions and 47 deletions

View File

@@ -6,7 +6,6 @@ import (
"context"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/report"
)
@@ -52,8 +51,8 @@ func makeProbeHandler(rep Reporter) CtxHandlerFunc {
result := []probeDesc{}
for _, n := range rpt.Host.Nodes {
id, _ := n.Latest.Lookup(report.ControlProbeID)
hostname, _ := n.Latest.Lookup(host.HostName)
version, dt, _ := n.Latest.LookupEntry(host.ScopeVersion)
hostname, _ := n.Latest.Lookup(report.HostName)
version, dt, _ := n.Latest.LookupEntry(report.ScopeVersion)
result = append(result, probeDesc{
ID: id,
Hostname: hostname,

View File

@@ -8,7 +8,6 @@ import (
docker_client "github.com/fsouza/go-dockerclient"
"github.com/weaveworks/scope/probe"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/report"
)
@@ -306,7 +305,7 @@ func (r *Reporter) overlayTopology() report.Topology {
// Add both local and global networks to the LocalNetworks Set
// since we treat container IPs as local
node := report.MakeNode(report.MakeOverlayNodeID(report.DockerOverlayPeerPrefix, r.hostID)).WithSets(
report.MakeSets().Add(host.LocalNetworks, report.MakeStringSet(subnets...)))
report.MakeSets().Add(report.HostLocalNetworks, report.MakeStringSet(subnets...)))
t := report.MakeTopology()
t.AddNode(node)
return t

View File

@@ -6,7 +6,6 @@ import (
client "github.com/fsouza/go-dockerclient"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/report"
)
@@ -141,7 +140,7 @@ func TestReporter(t *testing.T) {
}
want := "5.6.7.8/24"
if have, ok := node.Sets.Lookup(host.LocalNetworks); !ok || len(have) != 1 || have[0] != want {
if have, ok := node.Sets.Lookup(report.HostLocalNetworks); !ok || len(have) != 1 || have[0] != want {
t.Fatalf("Expected node to have exactly local network %v but found %v", want, have)
}

View File

@@ -14,16 +14,16 @@ import (
// Keys for use in Node.Latest.
const (
Timestamp = "ts"
HostName = "host_name"
LocalNetworks = "local_networks"
OS = "os"
KernelVersion = "kernel_version"
Uptime = "uptime"
Load1 = "load1"
CPUUsage = "host_cpu_usage_percent"
MemoryUsage = "host_mem_usage_bytes"
ScopeVersion = "host_scope_version"
Timestamp = report.Timestamp
HostName = report.HostName
LocalNetworks = report.HostLocalNetworks
OS = report.OS
KernelVersion = report.KernelVersion
Uptime = report.Uptime
Load1 = report.Load1
CPUUsage = report.CPUUsage
MemoryUsage = report.MemoryUsage
ScopeVersion = report.ScopeVersion
)
// Exposed for testing.

View File

@@ -10,7 +10,6 @@ import (
"github.com/weaveworks/common/backoff"
"github.com/weaveworks/scope/common/weave"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/report"
)
@@ -249,7 +248,7 @@ func (w *Weave) Report() (report.Report, error) {
if w.statusCache.IPAM != nil {
r.Overlay.AddNode(
report.MakeNode(report.MakeOverlayNodeID(report.WeaveOverlayPeerPrefix, w.statusCache.Router.Name)).
WithSet(host.LocalNetworks, report.MakeStringSet(w.statusCache.IPAM.DefaultSubnet)),
WithSet(report.HostLocalNetworks, report.MakeStringSet(w.statusCache.IPAM.DefaultSubnet)),
)
}
return r, nil

View File

@@ -5,7 +5,6 @@ import (
"time"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/probe/overlay"
"github.com/weaveworks/scope/report"
"github.com/weaveworks/scope/test"
@@ -82,7 +81,7 @@ func TestOverlayTopology(t *testing.T) {
if peerNick, ok := node.Latest.Lookup(overlay.WeavePeerNickName); !ok || peerNick != weave.MockWeavePeerNickName {
t.Errorf("Expected weave peer nickname %q, got %q", weave.MockWeavePeerNickName, peerNick)
}
if localNetworks, ok := node.Sets.Lookup(host.LocalNetworks); !ok || !reflect.DeepEqual(localNetworks, report.MakeStringSet(weave.MockWeaveDefaultSubnet)) {
if localNetworks, ok := node.Sets.Lookup(report.HostLocalNetworks); !ok || !reflect.DeepEqual(localNetworks, report.MakeStringSet(weave.MockWeaveDefaultSubnet)) {
t.Errorf("Expected weave node local_networks %q, got %q", report.MakeStringSet(weave.MockWeaveDefaultSubnet), localNetworks)
}
// The weave proxy container is running

View File

@@ -7,7 +7,6 @@ import (
"github.com/weaveworks/common/test"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/probe/kubernetes"
"github.com/weaveworks/scope/probe/process"
"github.com/weaveworks/scope/render"
@@ -74,7 +73,7 @@ func TestMakeDetailedHostNode(t *testing.T) {
},
Metrics: []report.MetricRow{
{
ID: host.CPUUsage,
ID: report.CPUUsage,
Label: "CPU",
Format: "percent",
Value: 0.07,
@@ -82,7 +81,7 @@ func TestMakeDetailedHostNode(t *testing.T) {
Metric: &fixture.ClientHostCPUMetric,
},
{
ID: host.MemoryUsage,
ID: report.MemoryUsage,
Label: "Memory",
Format: "filesize",
Value: 0.08,
@@ -90,7 +89,7 @@ func TestMakeDetailedHostNode(t *testing.T) {
Metric: &fixture.ClientHostMemoryMetric,
},
{
ID: host.Load1,
ID: report.Load1,
Label: "Load (1m)",
Group: "load",
Value: 0.09,

View File

@@ -9,7 +9,6 @@ import (
"github.com/weaveworks/common/mtime"
"github.com/weaveworks/common/test"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/probe/process"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/render/detailed"
@@ -173,7 +172,7 @@ func TestMakeNodeSummary(t *testing.T) {
Tag: "",
},
Metadata: []report.MetadataRow{
{ID: host.HostName, Label: "Hostname", Value: fixture.ClientHostName, Priority: 11},
{ID: report.HostName, Label: "Hostname", Value: fixture.ClientHostName, Priority: 11},
},
Adjacency: report.MakeIDList(fixture.ServerHostNodeID),
},
@@ -337,7 +336,7 @@ func TestNodeMetrics(t *testing.T) {
node: fixture.Report.Host.Nodes[fixture.ClientHostNodeID],
want: []report.MetricRow{
{
ID: host.CPUUsage,
ID: report.CPUUsage,
Label: "CPU",
Format: "percent",
Group: "",
@@ -346,7 +345,7 @@ func TestNodeMetrics(t *testing.T) {
Metric: &fixture.ClientHostCPUMetric,
},
{
ID: host.MemoryUsage,
ID: report.MemoryUsage,
Label: "Memory",
Format: "filesize",
Group: "",
@@ -355,7 +354,7 @@ func TestNodeMetrics(t *testing.T) {
Metric: &fixture.ClientHostMemoryMetric,
},
{
ID: host.Load1,
ID: report.Load1,
Label: "Load (1m)",
Group: "load",
Value: 0.09,

View File

@@ -2,7 +2,6 @@ package expected
import (
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/probe/kubernetes"
"github.com/weaveworks/scope/probe/process"
"github.com/weaveworks/scope/render"
@@ -345,7 +344,7 @@ var (
RenderedHosts = report.Nodes{
fixture.ClientHostNodeID: hostNode(fixture.ClientHostNodeID, fixture.ServerHostNodeID).
WithLatests(map[string]string{
host.HostName: fixture.ClientHostName,
report.HostName: fixture.ClientHostName,
}).
WithChildren(report.MakeNodeSet(
RenderedEndpoints[fixture.Client54001NodeID],

View File

@@ -8,7 +8,6 @@ import (
"github.com/weaveworks/common/mtime"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/report"
"github.com/weaveworks/scope/test/utils"
@@ -102,7 +101,7 @@ var (
report.HostNodeID: serverHostNodeID,
}).
WithSets(report.MakeSets().
Add(host.LocalNetworks, report.MakeStringSet("192.168.0.0/16")),
Add(report.HostLocalNetworks, report.MakeStringSet("192.168.0.0/16")),
).WithTopology(report.Host),
},
},

View File

@@ -7,7 +7,6 @@ import (
"github.com/camlistore/camlistore/pkg/lru"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/report"
)
@@ -77,7 +76,7 @@ func LocalNetworks(r report.Report) report.Networks {
for _, topology := range []report.Topology{r.Host, r.Overlay} {
for _, md := range topology.Nodes {
nets, _ := md.Sets.Lookup(host.LocalNetworks)
nets, _ := md.Sets.Lookup(report.HostLocalNetworks)
for _, s := range nets {
networks.AddCIDR(s)
}

View File

@@ -5,7 +5,6 @@ import (
"testing"
"github.com/weaveworks/common/test"
"github.com/weaveworks/scope/probe/host"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/report"
)
@@ -16,7 +15,7 @@ func TestReportLocalNetworks(t *testing.T) {
Nodes: report.Nodes{
"nonets": report.MakeNode("nonets"),
"foo": report.MakeNode("foo").WithSets(report.MakeSets().
Add(host.LocalNetworks, report.MakeStringSet(
Add(report.HostLocalNetworks, report.MakeStringSet(
"10.0.0.1/8", "192.168.1.1/24", "10.0.0.1/8", "badnet/33")),
),
},
@@ -24,7 +23,7 @@ func TestReportLocalNetworks(t *testing.T) {
Overlay: report.Topology{
Nodes: report.Nodes{
"router": report.MakeNode("router").WithSets(report.MakeSets().
Add(host.LocalNetworks, report.MakeStringSet("10.32.0.1/12")),
Add(report.HostLocalNetworks, report.MakeStringSet("10.32.0.1/12")),
),
},
},

View File

@@ -97,6 +97,17 @@ const (
ECSServiceRunningCount = "ecs_service_running_count"
ECSScaleUp = "ecs_scale_up"
ECSScaleDown = "ecs_scale_down"
// probe/host
Timestamp = "ts"
HostName = "host_name"
HostLocalNetworks = "local_networks"
OS = "os"
KernelVersion = "kernel_version"
Uptime = "uptime"
Load1 = "load1"
CPUUsage = "host_cpu_usage_percent"
MemoryUsage = "host_mem_usage_bytes"
ScopeVersion = "host_scope_version"
)
/* Lookup table to allow msgpack/json decoder to avoid heap allocation
@@ -208,6 +219,17 @@ var commonKeys = map[string]string{
ECSServiceRunningCount: ECSServiceRunningCount,
ECSScaleUp: ECSScaleUp,
ECSScaleDown: ECSScaleDown,
Timestamp: Timestamp,
HostName: HostName,
HostLocalNetworks: HostLocalNetworks,
OS: OS,
KernelVersion: KernelVersion,
Uptime: Uptime,
Load1: Load1,
CPUUsage: CPUUsage,
MemoryUsage: MemoryUsage,
ScopeVersion: ScopeVersion,
}
func lookupCommonKey(b []byte) string {

View File

@@ -297,11 +297,11 @@ var (
report.HostNodeID: ClientHostNodeID,
}).
WithTopology(report.Host).WithSets(report.MakeSets().
Add(host.LocalNetworks, report.MakeStringSet("10.10.10.0/24")),
Add(report.HostLocalNetworks, report.MakeStringSet("10.10.10.0/24")),
).WithMetrics(report.Metrics{
host.CPUUsage: ClientHostCPUMetric,
host.MemoryUsage: ClientHostMemoryMetric,
host.Load1: ClientHostLoad1Metric,
report.CPUUsage: ClientHostCPUMetric,
report.MemoryUsage: ClientHostMemoryMetric,
report.Load1: ClientHostLoad1Metric,
}),
ServerHostNodeID: report.MakeNodeWith(
@@ -311,11 +311,11 @@ var (
report.HostNodeID: ServerHostNodeID,
}).
WithTopology(report.Host).WithSets(report.MakeSets().
Add(host.LocalNetworks, report.MakeStringSet("10.10.10.0/24")),
Add(report.HostLocalNetworks, report.MakeStringSet("10.10.10.0/24")),
).WithMetrics(report.Metrics{
host.CPUUsage: ServerHostCPUMetric,
host.MemoryUsage: ServerHostMemoryMetric,
host.Load1: ServerHostLoad1Metric,
report.CPUUsage: ServerHostCPUMetric,
report.MemoryUsage: ServerHostMemoryMetric,
report.Load1: ServerHostLoad1Metric,
}),
},
MetadataTemplates: host.MetadataTemplates,