| 1234567891011121314151617181920212223242526272829303132333435363738 |
- package client
- import (
- "log"
- "strconv"
- "time"
- "github.com/inhies/go-bytesize"
- "github.com/mackerelio/go-osstat/memory"
- "github.com/shirou/gopsutil/cpu"
- )
- // Look into using a ticker instead of a for-loop
- func (client *Client) statusUpdater() {
- for {
- // Fetch CPU usage in percentages
- cpustats, err := cpu.Percent(time.Second, false)
- if err != nil {
- log.Println("ERROR: fetching CPU usage infor - ", err)
- }
- // Fetch memory stats in bytes
- mem, err := memory.Get()
- if err != nil {
- log.Println("ERROR: fetching memory info - ", err)
- }
- // Use the ByteSize package to allow for memory calculations
- b := bytesize.New(float64(mem.Used))
- // Prepare the message.
- update := "update;" + strconv.Itoa(int(cpustats[0])) + ";" + b.String() + ";" + strconv.Itoa(client.taskId)
- // Write the message to the server
- client.writeToServer(update)
- }
- }
|