[agent-go] [status] basically accomplished the status module
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user