[agent-go] [status] basically accomplished the status module

This commit is contained in:
zeaslity
2023-04-14 10:04:58 +08:00
parent 9909593545
commit e50ba14c13
6 changed files with 105 additions and 10 deletions

View File

@@ -8,7 +8,7 @@ import (
"time"
)
type NetworkInfo struct {
type NetworkStatus struct {
Name string `json:"name,omitempty"`
InternalIPv4 []string `json:"internal_ip_v4,omitempty"`
InternalIPv6 []string `json:"internal_ip_v6,omitempty"`
@@ -21,7 +21,7 @@ type NetworkInfo struct {
RecvRate string `json:"recv_rate,omitempty"`
}
func GetNetworkInfo() (*NetworkInfo, error) {
func GetNetworkStatus() (*NetworkStatus, error) {
interfaces, err := net.Interfaces()
if err != nil {
return nil, err
@@ -57,21 +57,25 @@ func GetNetworkInfo() (*NetworkInfo, error) {
// 休眠3秒
time.Sleep(10 * time.Second)
time.Sleep(3 * time.Second)
var sentAfter uint64
var recvAfter uint64
for _, counter := range counters {
countersAfter, err := net.IOCounters(true)
if err != nil {
return nil, err
}
for _, counter := range countersAfter {
if counter.Name == mainInterface.Name {
sentAfter = counter.BytesSent
recvAfter = counter.BytesRecv
break
}
}
sendRate := fmt.Sprintf(formatBytes((sentAfter-sent)/10) + "/s")
recvRate := fmt.Sprintf(formatBytes((recvAfter-recv)/10) + "/s")
sendRate := fmt.Sprintf(formatBytes((sentAfter-sent)/3) + "/s")
recvRate := fmt.Sprintf(formatBytes((recvAfter-recv)/3) + "/s")
info := &NetworkInfo{
info := &NetworkStatus{
Name: mainInterface.Name,
InternalIPv4: ipv4List,
InternalIPv6: ipv6List,