|
|
|
|
@ -18,15 +18,14 @@ package collector |
|
|
|
|
import ( |
|
|
|
|
"github.com/go-kit/kit/log" |
|
|
|
|
"github.com/go-kit/kit/log/level" |
|
|
|
|
"strconv" |
|
|
|
|
|
|
|
|
|
"golang.org/x/sys/unix" |
|
|
|
|
"regexp" |
|
|
|
|
"unsafe" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func getNetDevStats(ignore *regexp.Regexp, accept *regexp.Regexp, logger log.Logger) (map[string]map[string]string, error) { |
|
|
|
|
netDev := map[string]map[string]string{} |
|
|
|
|
func getNetDevStats(ignore *regexp.Regexp, accept *regexp.Regexp, logger log.Logger) (netDevStats, error) { |
|
|
|
|
netDev := netDevStats{} |
|
|
|
|
|
|
|
|
|
mib := [6]_C_int{unix.CTL_NET, unix.AF_ROUTE, 0, 0, unix.NET_RT_IFLIST, 0} |
|
|
|
|
buf, err := sysctl(mib[:]) |
|
|
|
|
@ -63,16 +62,16 @@ func getNetDevStats(ignore *regexp.Regexp, accept *regexp.Regexp, logger log.Log |
|
|
|
|
continue |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
netDev[dev] = map[string]string{ |
|
|
|
|
"receive_packets": strconv.Itoa(int(data.Ipackets)), |
|
|
|
|
"transmit_packets": strconv.Itoa(int(data.Opackets)), |
|
|
|
|
"receive_errs": strconv.Itoa(int(data.Ierrors)), |
|
|
|
|
"transmit_errs": strconv.Itoa(int(data.Oerrors)), |
|
|
|
|
"receive_bytes": strconv.Itoa(int(data.Ibytes)), |
|
|
|
|
"transmit_bytes": strconv.Itoa(int(data.Obytes)), |
|
|
|
|
"receive_multicast": strconv.Itoa(int(data.Imcasts)), |
|
|
|
|
"transmit_multicast": strconv.Itoa(int(data.Omcasts)), |
|
|
|
|
"receive_drop": strconv.Itoa(int(data.Iqdrops)), |
|
|
|
|
netDev[dev] = map[string]uint64{ |
|
|
|
|
"receive_packets": data.Ipackets, |
|
|
|
|
"transmit_packets": data.Opackets, |
|
|
|
|
"receive_errs": data.Ierrors, |
|
|
|
|
"transmit_errs": data.Oerrors, |
|
|
|
|
"receive_bytes": data.Ibytes, |
|
|
|
|
"transmit_bytes": data.Obytes, |
|
|
|
|
"receive_multicast": data.Imcasts, |
|
|
|
|
"transmit_multicast": data.Omcasts, |
|
|
|
|
"receive_drop": data.Iqdrops, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return netDev, nil |
|
|
|
|
|