func TestUbuntuCalculateEphemeralDiskPartitionSizesWhenDiskTwiceTheMemoryOrSmaller(t *testing.T) { memStats := sigar.Mem{} memStats.Get() totalMemInKb := memStats.Total totalMemInBlocks := totalMemInKb * uint64(1024/512) diskSizeInBlocks := totalMemInBlocks*2 - 1 expectedSwap := diskSizeInBlocks / 2 testUbuntuCalculateEphemeralDiskPartitionSizes(t, diskSizeInBlocks, expectedSwap) }
func (p ubuntu) GetMemStats() (stats MemStats, err error) { mem := sigar.Mem{} err = mem.Get() if err != nil { return } stats.Total = mem.Total stats.Used = mem.Used return }
func (s sigarStatsCollector) GetMemStats() (stats MemStats, err error) { mem := sigar.Mem{} err = mem.Get() if err != nil { return } stats.Total = mem.Total stats.Used = mem.Used return }
func (s sigarStatsCollector) GetMemStats() (stats MemStats, err error) { mem := sigar.Mem{} err = mem.Get() if err != nil { err = bosherr.WrapError(err, "Getting Sigar Mem") return } stats.Total = mem.Total stats.Used = mem.Used return }
func postMetrics() error { var metrics = make(map[string]interface{}) // Runtime Info metrics["agent.runtime.numcpu"] = runtime.NumCPU() metrics["agent.runtime.numgoroutine"] = runtime.NumGoroutine() // System Info avg := sigar.LoadAverage{} mem := sigar.Mem{} swap := sigar.Swap{} avg.Get() mem.Get() swap.Get() metrics["agent.system.loadavg.one"] = avg.One metrics["agent.system.loadavg.five"] = avg.Five metrics["agent.system.loadavg.fifteen"] = avg.Fifteen metrics["agent.system.mem.total"] = mem.Total metrics["agent.system.mem.used"] = mem.Used metrics["agent.system.mem.free"] = mem.Free metrics["agent.system.mem.actual_used"] = mem.ActualUsed metrics["agent.system.mem.actual_free"] = mem.ActualFree metrics["agent.system.swap.total"] = swap.Total metrics["agent.system.swap.used"] = swap.Used metrics["agent.system.swap.free"] = swap.Free // Disk Info fslist := sigar.FileSystemList{} fslist.Get() for _, fs := range fslist.List { if strings.HasPrefix(fs.DevName, "/") { dirname := fs.DirName usage := sigar.FileSystemUsage{} usage.Get(dirname) metrics[fmt.Sprintf("agent.disk.%s.total", dirname)] = usage.Total metrics[fmt.Sprintf("agent.disk.%s.used", dirname)] = usage.Used metrics[fmt.Sprintf("agent.disk.%s.avail", dirname)] = usage.Avail metrics[fmt.Sprintf("agent.disk.%s.used_percent", dirname)] = usage.UsePercent() } } if client, err := models.NewCounterClient(nil); err != nil { return err } else { return client.PostMany("statsd", metrics) } }
HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 59328 kB DirectMap2M: 333824 kB ` err := ioutil.WriteFile(meminfoFile, []byte(meminfoContents), 0444) Expect(err).ToNot(HaveOccurred()) }) It("returns correct memory info", func() { mem := sigar.Mem{} err := mem.Get() Expect(err).ToNot(HaveOccurred()) Expect(mem.Total).To(BeNumerically("==", 374256*1024)) Expect(mem.Free).To(BeNumerically("==", 274460*1024)) }) }) Describe("Swap", func() { var meminfoFile string BeforeEach(func() { meminfoFile = procd + "/meminfo" meminfoContents := ` MemTotal: 374256 kB
func freeMem() uint64 { mem := sigar.Mem{} mem.Get() return (mem.Free / 1024 / 1024) }