[Agent] [Status] network metric

This commit is contained in:
zeaslity
2023-12-20 16:56:54 +08:00
parent 4d56083b5a
commit f8f6a675d7

View File

@@ -17,6 +17,9 @@ type NetworkMetric struct {
RecvSpeed float64 RecvSpeed float64
} }
type NetworkInfo struct {
}
type NetworkStatus struct { type NetworkStatus struct {
Name string `json:"name,omitempty"` Name string `json:"name,omitempty"`
InternalIPv4 []string `json:"internal_ip_v4,omitempty"` InternalIPv4 []string `json:"internal_ip_v4,omitempty"`
@@ -49,16 +52,19 @@ func GetNetworkMetric() ([]NetworkMetric, error) {
return nil, errors.New(233, msg) return nil, errors.New(233, msg)
} }
ioCountersStats, err := net.IOCounters(false) ioCountersStats, err := net.IOCounters(true)
if err != nil { if err != nil {
log.ErrorF("[GetNetworkMetric] - get io counter list error %v\n", err) log.ErrorF("[GetNetworkMetric] - get io counter list error %v\n", err)
return nil, err return nil, err
} }
//marshal, _ := json.Marshal(ioCountersStats)
//fmt.Println(string(marshal))
duration := time.Second * 2 duration := time.Second * 2
log.DebugF("[GetNetworkMetric] - start to wait %d seconds ", duration/1000000000)
time.Sleep(duration) time.Sleep(duration)
afterIoCounterList, err := net.IOCounters(false) afterIoCounterList, err := net.IOCounters(true)
if err != nil { if err != nil {
log.ErrorF("[GetNetworkMetric] - get io counter list second error %v\n", err) log.ErrorF("[GetNetworkMetric] - get io counter list second error %v\n", err)
return nil, err return nil, err
@@ -68,11 +74,11 @@ func GetNetworkMetric() ([]NetworkMetric, error) {
for _, interfaceStat := range interfaceStatList { for _, interfaceStat := range interfaceStatList {
if MatchNetInterfaceRight(interfaceStat.Name) { if MatchNetInterfaceRight(interfaceStat.Name) {
log.DebugF("[GetNetworkMetric] - match net interface name is => %s", interfaceStat.Name)
for _, after := range afterIoCounterList { for _, after := range afterIoCounterList {
if strings.Contains(after.Name, interfaceStat.Name) { if strings.HasPrefix(after.Name, interfaceStat.Name) {
for _, before := range ioCountersStats { for _, before := range ioCountersStats {
if strings.Contains(before.Name, interfaceStat.Name) { if strings.HasPrefix(before.Name, interfaceStat.Name) {
// match after and before interface // match after and before interface
// assign // assign