func GetLoad1() float64 { concreteSigar := sigar.ConcreteSigar{} avg, err := concreteSigar.GetLoadAverage() if err != nil { log.Debug("Failed to get load average") return -1 } return avg.One }
func GetSystemLoad() (*SystemLoad, error) { concreteSigar := sigar.ConcreteSigar{} avg, err := concreteSigar.GetLoadAverage() if err != nil { return nil, err } return &SystemLoad{ Load1: avg.One, Load5: avg.Five, Load15: avg.Fifteen, }, nil }
func main() { concreteSigar := gosigar.ConcreteSigar{} uptime := gosigar.Uptime{} uptime.Get() avg, err := concreteSigar.GetLoadAverage() if err != nil { fmt.Printf("Failed to get load average") return } fmt.Fprintf(os.Stdout, " %s up %s load average: %.2f, %.2f, %.2f\n", time.Now().Format("15:04:05"), uptime.Format(), avg.One, avg.Five, avg.Fifteen) }
func GetSystemLoad() (*SystemLoad, error) { concreteSigar := sigar.ConcreteSigar{} avg, err := concreteSigar.GetLoadAverage() if err != nil { return nil, err } cpuList := sigar.CpuList{} cpuList.Get() numCore := len(cpuList.List) return &SystemLoad{ Load1: avg.One, Load5: avg.Five, Load15: avg.Fifteen, LoadNorm1: avg.One / float64(numCore), LoadNorm5: avg.Five / float64(numCore), LoadNorm15: avg.Fifteen / float64(numCore), }, nil }
It("does not block", func() { _, stop := concreteSigar.CollectCpuStats(10 * time.Millisecond) // Sleep long enough for samplesCh to fill at least 2 values time.Sleep(20 * time.Millisecond) stop <- struct{}{} // If CollectCpuStats blocks it will never get here Expect(true).To(BeTrue()) }) }) It("GetLoadAverage", func() { avg, err := concreteSigar.GetLoadAverage() Expect(avg.One).ToNot(BeNil()) Expect(avg.Five).ToNot(BeNil()) Expect(avg.Fifteen).ToNot(BeNil()) Expect(err).ToNot(HaveOccurred()) }) It("GetMem", func() { mem, err := concreteSigar.GetMem() Expect(err).ToNot(HaveOccurred()) Expect(mem.Total).To(BeNumerically(">", 0)) Expect(mem.Used + mem.Free).To(BeNumerically("<=", mem.Total)) })