feat: remove useless fields in network topology (#2439)
Signed-off-by: Gaius <gaius.qi@gmail.com>
This commit is contained in:
parent
f610ab9c0d
commit
691e884d35
|
|
@ -173,7 +173,7 @@ const (
|
|||
DefaultProbeInterval = 15 * time.Minute
|
||||
|
||||
// DefaultProbeCount is the default number of probing hosts.
|
||||
DefaultProbeCount = 10
|
||||
DefaultProbeCount = 5
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
|||
|
|
@ -274,72 +274,16 @@ func (nt *networkTopology) Snapshot() error {
|
|||
}
|
||||
|
||||
destHost := storage.DestHost{
|
||||
Host: storage.Host{
|
||||
ID: host.ID,
|
||||
Type: host.Type.Name(),
|
||||
Hostname: host.Hostname,
|
||||
IP: host.IP,
|
||||
Port: host.Port,
|
||||
DownloadPort: host.DownloadPort,
|
||||
OS: host.OS,
|
||||
Platform: host.Platform,
|
||||
PlatformFamily: host.PlatformFamily,
|
||||
PlatformVersion: host.PlatformVersion,
|
||||
KernelVersion: host.KernelVersion,
|
||||
ConcurrentUploadLimit: host.ConcurrentUploadLimit.Load(),
|
||||
ConcurrentUploadCount: host.ConcurrentUploadCount.Load(),
|
||||
UploadCount: host.UploadCount.Load(),
|
||||
UploadFailedCount: host.UploadFailedCount.Load(),
|
||||
CPU: resource.CPU{
|
||||
LogicalCount: host.CPU.LogicalCount,
|
||||
PhysicalCount: host.CPU.PhysicalCount,
|
||||
Percent: host.CPU.Percent,
|
||||
ProcessPercent: host.CPU.ProcessPercent,
|
||||
Times: resource.CPUTimes{
|
||||
User: host.CPU.Times.User,
|
||||
System: host.CPU.Times.System,
|
||||
Idle: host.CPU.Times.Idle,
|
||||
Nice: host.CPU.Times.Nice,
|
||||
Iowait: host.CPU.Times.Iowait,
|
||||
Irq: host.CPU.Times.Irq,
|
||||
Softirq: host.CPU.Times.Softirq,
|
||||
Steal: host.CPU.Times.Steal,
|
||||
Guest: host.CPU.Times.Guest,
|
||||
GuestNice: host.CPU.Times.GuestNice,
|
||||
},
|
||||
},
|
||||
Memory: resource.Memory{
|
||||
Total: host.Memory.Total,
|
||||
Available: host.Memory.Available,
|
||||
Used: host.Memory.Used,
|
||||
UsedPercent: host.Memory.UsedPercent,
|
||||
ProcessUsedPercent: host.Memory.ProcessUsedPercent,
|
||||
Free: host.Memory.Free,
|
||||
},
|
||||
Network: resource.Network{
|
||||
TCPConnectionCount: host.Network.TCPConnectionCount,
|
||||
UploadTCPConnectionCount: host.Network.UploadTCPConnectionCount,
|
||||
Location: host.Network.Location,
|
||||
IDC: host.Network.IDC,
|
||||
},
|
||||
Disk: resource.Disk{
|
||||
Total: host.Disk.Total,
|
||||
Free: host.Disk.Free,
|
||||
Used: host.Disk.Used,
|
||||
UsedPercent: host.Disk.UsedPercent,
|
||||
InodesTotal: host.Disk.InodesTotal,
|
||||
InodesUsed: host.Disk.InodesUsed,
|
||||
InodesFree: host.Disk.InodesFree,
|
||||
InodesUsedPercent: host.Disk.InodesUsedPercent,
|
||||
},
|
||||
Build: resource.Build{
|
||||
GitVersion: host.Build.GitVersion,
|
||||
GitCommit: host.Build.GitCommit,
|
||||
GoVersion: host.Build.GoVersion,
|
||||
Platform: host.Build.Platform,
|
||||
},
|
||||
CreatedAt: host.CreatedAt.Load().UnixNano(),
|
||||
UpdatedAt: host.UpdatedAt.Load().UnixNano(),
|
||||
ID: host.ID,
|
||||
Type: host.Type.Name(),
|
||||
Hostname: host.Hostname,
|
||||
IP: host.IP,
|
||||
Port: host.Port,
|
||||
Network: resource.Network{
|
||||
TCPConnectionCount: host.Network.TCPConnectionCount,
|
||||
UploadTCPConnectionCount: host.Network.UploadTCPConnectionCount,
|
||||
Location: host.Network.Location,
|
||||
IDC: host.Network.IDC,
|
||||
},
|
||||
Probes: storage.Probes{
|
||||
AverageRTT: averageRTT.Nanoseconds(),
|
||||
|
|
@ -360,72 +304,18 @@ func (nt *networkTopology) Snapshot() error {
|
|||
|
||||
if err = nt.storage.CreateNetworkTopology(storage.NetworkTopology{
|
||||
ID: uuid.NewString(),
|
||||
Host: storage.Host{
|
||||
ID: host.ID,
|
||||
Type: host.Type.Name(),
|
||||
Hostname: host.Hostname,
|
||||
IP: host.IP,
|
||||
Port: host.Port,
|
||||
DownloadPort: host.DownloadPort,
|
||||
OS: host.OS,
|
||||
Platform: host.Platform,
|
||||
PlatformFamily: host.PlatformFamily,
|
||||
PlatformVersion: host.PlatformVersion,
|
||||
KernelVersion: host.KernelVersion,
|
||||
ConcurrentUploadLimit: host.ConcurrentUploadLimit.Load(),
|
||||
ConcurrentUploadCount: host.ConcurrentUploadCount.Load(),
|
||||
UploadCount: host.UploadCount.Load(),
|
||||
UploadFailedCount: host.UploadFailedCount.Load(),
|
||||
CPU: resource.CPU{
|
||||
LogicalCount: host.CPU.LogicalCount,
|
||||
PhysicalCount: host.CPU.PhysicalCount,
|
||||
Percent: host.CPU.Percent,
|
||||
ProcessPercent: host.CPU.ProcessPercent,
|
||||
Times: resource.CPUTimes{
|
||||
User: host.CPU.Times.User,
|
||||
System: host.CPU.Times.System,
|
||||
Idle: host.CPU.Times.Idle,
|
||||
Nice: host.CPU.Times.Nice,
|
||||
Iowait: host.CPU.Times.Iowait,
|
||||
Irq: host.CPU.Times.Irq,
|
||||
Softirq: host.CPU.Times.Softirq,
|
||||
Steal: host.CPU.Times.Steal,
|
||||
Guest: host.CPU.Times.Guest,
|
||||
GuestNice: host.CPU.Times.GuestNice,
|
||||
},
|
||||
},
|
||||
Memory: resource.Memory{
|
||||
Total: host.Memory.Total,
|
||||
Available: host.Memory.Available,
|
||||
Used: host.Memory.Used,
|
||||
UsedPercent: host.Memory.UsedPercent,
|
||||
ProcessUsedPercent: host.Memory.ProcessUsedPercent,
|
||||
Free: host.Memory.Free,
|
||||
},
|
||||
Host: storage.SrcHost{
|
||||
ID: host.ID,
|
||||
Type: host.Type.Name(),
|
||||
Hostname: host.Hostname,
|
||||
IP: host.IP,
|
||||
Port: host.Port,
|
||||
Network: resource.Network{
|
||||
TCPConnectionCount: host.Network.TCPConnectionCount,
|
||||
UploadTCPConnectionCount: host.Network.UploadTCPConnectionCount,
|
||||
Location: host.Network.Location,
|
||||
IDC: host.Network.IDC,
|
||||
},
|
||||
Disk: resource.Disk{
|
||||
Total: host.Disk.Total,
|
||||
Free: host.Disk.Free,
|
||||
Used: host.Disk.Used,
|
||||
UsedPercent: host.Disk.UsedPercent,
|
||||
InodesTotal: host.Disk.InodesTotal,
|
||||
InodesUsed: host.Disk.InodesUsed,
|
||||
InodesFree: host.Disk.InodesFree,
|
||||
InodesUsedPercent: host.Disk.InodesUsedPercent,
|
||||
},
|
||||
Build: resource.Build{
|
||||
GitVersion: host.Build.GitVersion,
|
||||
GitCommit: host.Build.GitCommit,
|
||||
GoVersion: host.Build.GoVersion,
|
||||
Platform: host.Build.Platform,
|
||||
},
|
||||
CreatedAt: host.CreatedAt.Load().UnixNano(),
|
||||
UpdatedAt: host.UpdatedAt.Load().UnixNano(),
|
||||
},
|
||||
DestHosts: destHosts,
|
||||
CreatedAt: now.UnixNano(),
|
||||
|
|
|
|||
|
|
@ -116,74 +116,6 @@ var (
|
|||
UpdatedAt: time.Now().UnixNano(),
|
||||
}
|
||||
|
||||
mockSeedHost = Host{
|
||||
ID: "3",
|
||||
Type: "super",
|
||||
Hostname: "foo",
|
||||
IP: "127.0.0.1",
|
||||
Port: 8080,
|
||||
DownloadPort: 8081,
|
||||
OS: "linux",
|
||||
Platform: "ubuntu",
|
||||
PlatformFamily: "debian",
|
||||
PlatformVersion: "1.0.0",
|
||||
KernelVersion: "1.0.0",
|
||||
ConcurrentUploadLimit: 100,
|
||||
ConcurrentUploadCount: 40,
|
||||
UploadCount: 20,
|
||||
UploadFailedCount: 3,
|
||||
CPU: resource.CPU{
|
||||
LogicalCount: 24,
|
||||
PhysicalCount: 12,
|
||||
Percent: 0.8,
|
||||
ProcessPercent: 0.4,
|
||||
Times: resource.CPUTimes{
|
||||
User: 100,
|
||||
System: 101,
|
||||
Idle: 102,
|
||||
Nice: 103,
|
||||
Iowait: 104,
|
||||
Irq: 105,
|
||||
Softirq: 106,
|
||||
Steal: 107,
|
||||
Guest: 108,
|
||||
GuestNice: 109,
|
||||
},
|
||||
},
|
||||
Memory: resource.Memory{
|
||||
Total: 20,
|
||||
Available: 19,
|
||||
Used: 16,
|
||||
UsedPercent: 0.7,
|
||||
ProcessUsedPercent: 0.2,
|
||||
Free: 15,
|
||||
},
|
||||
Network: resource.Network{
|
||||
TCPConnectionCount: 400,
|
||||
UploadTCPConnectionCount: 200,
|
||||
Location: "china",
|
||||
IDC: "e1",
|
||||
},
|
||||
Disk: resource.Disk{
|
||||
Total: 100,
|
||||
Free: 88,
|
||||
Used: 56,
|
||||
UsedPercent: 0.9,
|
||||
InodesTotal: 200,
|
||||
InodesUsed: 180,
|
||||
InodesFree: 160,
|
||||
InodesUsedPercent: 0.6,
|
||||
},
|
||||
Build: resource.Build{
|
||||
GitVersion: "3.0.0",
|
||||
GitCommit: "2bf4d5e",
|
||||
GoVersion: "1.19",
|
||||
Platform: "linux",
|
||||
},
|
||||
CreatedAt: time.Now().UnixNano(),
|
||||
UpdatedAt: time.Now().UnixNano(),
|
||||
}
|
||||
|
||||
mockParent = Parent{
|
||||
ID: "4",
|
||||
Tag: "m",
|
||||
|
|
@ -215,15 +147,32 @@ var (
|
|||
UpdatedAt: time.Now().UnixNano(),
|
||||
}
|
||||
|
||||
mockNetworkTopology = NetworkTopology{
|
||||
ID: "6",
|
||||
Host: mockSeedHost,
|
||||
DestHosts: mockDestHosts,
|
||||
CreatedAt: time.Now().UnixNano(),
|
||||
mockSrcHost = SrcHost{
|
||||
ID: "3",
|
||||
Type: "super",
|
||||
Hostname: "foo",
|
||||
IP: "127.0.0.1",
|
||||
Port: 8080,
|
||||
Network: resource.Network{
|
||||
TCPConnectionCount: 400,
|
||||
UploadTCPConnectionCount: 200,
|
||||
Location: "china",
|
||||
IDC: "e1",
|
||||
},
|
||||
}
|
||||
|
||||
mockDestHost = DestHost{
|
||||
Host: mockHost,
|
||||
ID: "2",
|
||||
Type: "normal",
|
||||
Hostname: "localhost",
|
||||
IP: "127.0.0.1",
|
||||
Port: 8080,
|
||||
Network: resource.Network{
|
||||
TCPConnectionCount: 400,
|
||||
UploadTCPConnectionCount: 200,
|
||||
Location: "china",
|
||||
IDC: "e1",
|
||||
},
|
||||
Probes: Probes{
|
||||
AverageRTT: 10,
|
||||
CreatedAt: time.Now().UnixNano(),
|
||||
|
|
@ -231,7 +180,14 @@ var (
|
|||
},
|
||||
}
|
||||
|
||||
mockDestHosts = append(make([]DestHost, 9), mockDestHost)
|
||||
mockDestHosts = []DestHost{mockDestHost, mockDestHost, mockDestHost, mockDestHost, mockDestHost}
|
||||
|
||||
mockNetworkTopology = NetworkTopology{
|
||||
ID: "6",
|
||||
Host: mockSrcHost,
|
||||
DestHosts: mockDestHosts,
|
||||
CreatedAt: time.Now().UnixNano(),
|
||||
}
|
||||
)
|
||||
|
||||
func TestStorage_New(t *testing.T) {
|
||||
|
|
|
|||
|
|
@ -212,10 +212,46 @@ type Probes struct {
|
|||
UpdatedAt int64 `csv:"updatedAt"`
|
||||
}
|
||||
|
||||
// SrcHost contains content for source host.
|
||||
type SrcHost struct {
|
||||
// ID is host id.
|
||||
ID string `csv:"id"`
|
||||
|
||||
// Type is host type.
|
||||
Type string `csv:"type"`
|
||||
|
||||
// Hostname is host name.
|
||||
Hostname string `csv:"hostname"`
|
||||
|
||||
// IP is host ip.
|
||||
IP string `csv:"ip"`
|
||||
|
||||
// Port is grpc service port.
|
||||
Port int32 `csv:"port"`
|
||||
|
||||
// Network Stat.
|
||||
Network resource.Network `csv:"network"`
|
||||
}
|
||||
|
||||
// DestHost contains content for destination host.
|
||||
type DestHost struct {
|
||||
// Host is probe destination host.
|
||||
Host Host `csv:"host"`
|
||||
// ID is host id.
|
||||
ID string `csv:"id"`
|
||||
|
||||
// Type is host type.
|
||||
Type string `csv:"type"`
|
||||
|
||||
// Hostname is host name.
|
||||
Hostname string `csv:"hostname"`
|
||||
|
||||
// IP is host ip.
|
||||
IP string `csv:"ip"`
|
||||
|
||||
// Port is grpc service port.
|
||||
Port int32 `csv:"port"`
|
||||
|
||||
// Network Stat.
|
||||
Network resource.Network `csv:"network"`
|
||||
|
||||
// Probes is the network information probed to destination host.
|
||||
Probes Probes `csv:"probes"`
|
||||
|
|
@ -227,10 +263,10 @@ type NetworkTopology struct {
|
|||
ID string `csv:"id"`
|
||||
|
||||
// Host is probe source host.
|
||||
Host Host `csv:"host"`
|
||||
Host SrcHost `csv:"host"`
|
||||
|
||||
// DestHosts is the destination hosts probed from source host.
|
||||
DestHosts []DestHost `csv:"destHosts" csv[]:"10"`
|
||||
DestHosts []DestHost `csv:"destHosts" csv[]:"5"`
|
||||
|
||||
// CreatedAt is network topology create nanosecond time.
|
||||
CreatedAt int64 `csv:"createdAt"`
|
||||
|
|
|
|||
Loading…
Reference in New Issue