123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package main
- import (
- "bufio"
- "flag"
- "fmt"
- "github.com/oz123/gupta"
- "log"
- "os"
- "time"
- )
- func readProcStatLine() string {
- f, err := os.Open("/proc/stat")
- defer f.Close()
- rd := bufio.NewReader(f)
- line, err := rd.ReadString('\n')
- if err != nil {
- log.Fatalf("could not read /proc/stat, error: %v", err)
- }
- return line
- }
- func main() {
- var freq int
- var partition, netInterface string
- var load, memory, cpu bool
- flag.IntVar(&freq, "frequency", 5, "Frequency of polling in secods")
- flag.IntVar(&freq, "f", 5, "Frequency of polling in secods")
- flag.BoolVar(&memory, "m", false, "Poll memory")
- flag.BoolVar(&load, "l", false, "Poll load")
- flag.BoolVar(&cpu, "c", false, "poll CPU usage")
- flag.StringVar(&partition, "p", "", "Poll disk usage (partition)")
- flag.StringVar(&netInterface, "n", "", "Network usage (interface)")
- flag.Parse()
- fmt.Println(gupta.Hello())
- line := readProcStatLine()
- time.Sleep(time.Second)
- lineNew := readProcStatLine()
- for true {
- cpustat := gupta.NewCPUStat(line, lineNew)
- fmt.Printf("CPU usage %.2f%%\n", cpustat.CPUUsage())
- time.Sleep(time.Duration(freq) * time.Second)
- line = lineNew
- lineNew = readProcStatLine()
- }
- }
|