コード例 #1
0
ファイル: collect.go プロジェクト: codeskyblue/gopsutil
func NewProcCollectTraffic(proc *process.Process) CollectFunc {
	return func() (*Data, error) {
		uids, err := proc.Uids()
		if err != nil {
			return nil, err
		}
		uid := uids[0] // there are four, first is real_uid
		rcv, snd, err := ReadTrafix(uid)
		if err != nil {
			return nil, err
		}
		return &Data{
			Name: fmt.Sprintf("proc:%d:traffic", proc.Pid),
			Data: map[string]interface{}{
				"recv": rcv,
				"send": snd,
			},
		}, nil
	}
}