Golang-C1-12

作业

监控架构以及agent结构

tree

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
monitor
├── agent
│   ├── config.go
│   ├── config.toml
│   ├── main.go
│   ├── sched.go
│   ├── sender.go
│   ├── user.go
│   └── usr.py
├── common
│   └── model.go
├── saver
│   └── main.go
└── trans
    └── main.go

psutil使用

cpu.go

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main

import (
	"fmt"
	"time"

	"github.com/shirou/gopsutil/cpu"
	"github.com/shirou/gopsutil/disk"
	"github.com/shirou/gopsutil/load"
	"github.com/shirou/gopsutil/mem"
)

func main() {
	cpus, err := cpu.Percent(time.Second, true)
	if err != nil {
		panic(err)
	}

	fmt.Println(cpus)

	loadavg, err := load.Avg()
	if err != nil {
		panic(err)
	}
	fmt.Println(loadavg)

	memstat, err := mem.VirtualMemory()
	if err != nil {
		panic(err)
	}

	fmt.Println(memstat.UsedPercent)
	fmt.Println(memstat.Used / 1024 / 1024)

	diskstat, err := disk.Usage("/")
	if err != nil {
		panic(err)
	}

	fmt.Println(diskstat.UsedPercent)
}

数据结构和通信协议

网络模块

调度模块和网络的断线重连

总结

homework

补全调度模块

要求: 程序能正常运行