@@ -169,27 +169,23 @@ def _ping_thread(host, mark, port):
169169
170170def _net_speed ():
171171 while True :
172- with open ("/proc/net/dev" , "r" ) as f :
173- net_dev = f .readlines ()
174- avgrx = 0
175- avgtx = 0
176- for dev in net_dev [2 :]:
177- dev = dev .split (':' )
178- if "lo" in dev [0 ] or "tun" in dev [0 ] \
179- or "docker" in dev [0 ] or "veth" in dev [0 ] \
180- or "br-" in dev [0 ] or "vmbr" in dev [0 ] \
181- or "vnet" in dev [0 ] or "kube" in dev [0 ]:
182- continue
183- dev = dev [1 ].split ()
184- avgrx += int (dev [0 ])
185- avgtx += int (dev [8 ])
186- now_clock = time .time ()
187- netSpeed ["diff" ] = now_clock - netSpeed ["clock" ]
188- netSpeed ["clock" ] = now_clock
189- netSpeed ["netrx" ] = int ((avgrx - netSpeed ["avgrx" ]) / netSpeed ["diff" ])
190- netSpeed ["nettx" ] = int ((avgtx - netSpeed ["avgtx" ]) / netSpeed ["diff" ])
191- netSpeed ["avgrx" ] = avgrx
192- netSpeed ["avgtx" ] = avgtx
172+ avgrx = 0
173+ avgtx = 0
174+ for name , stats in psutil .net_io_counters (pernic = True ).iteritems ():
175+ if "lo" in name or "tun" in name \
176+ or "docker" in name or "veth" in name \
177+ or "br-" in name or "vmbr" in name \
178+ or "vnet" in name or "kube" in name :
179+ continue
180+ avgrx += stats .bytes_recv
181+ avgtx += stats .bytes_sent
182+ now_clock = time .time ()
183+ netSpeed ["diff" ] = now_clock - netSpeed ["clock" ]
184+ netSpeed ["clock" ] = now_clock
185+ netSpeed ["netrx" ] = int ((avgrx - netSpeed ["avgrx" ]) / netSpeed ["diff" ])
186+ netSpeed ["nettx" ] = int ((avgtx - netSpeed ["avgtx" ]) / netSpeed ["diff" ])
187+ netSpeed ["avgrx" ] = avgrx
188+ netSpeed ["avgtx" ] = avgtx
193189 time .sleep (INTERVAL )
194190
195191def get_realtime_date ():
0 commit comments