Merge pull request #64 from influxdb/master

Fix memory reporting for linux systems
pull/65/head
shirou 10 years ago
commit 3a625ab13f

@ -26,10 +26,9 @@ var (
const WaitMSec = 500
func DiskUsage(path string) (DiskUsageStat, error) {
func DiskUsage(path string) (*DiskUsageStat, error) {
ret := DiskUsageStat{}
ret.Path = path
lpFreeBytesAvailable := int64(0)
lpTotalNumberOfBytes := int64(0)
lpTotalNumberOfFreeBytes := int64(0)
@ -39,19 +38,19 @@ func DiskUsage(path string) (DiskUsageStat, error) {
uintptr(unsafe.Pointer(&lpTotalNumberOfBytes)),
uintptr(unsafe.Pointer(&lpTotalNumberOfFreeBytes)))
if diskret == 0 {
return ret, err
return nil, err
}
ret := &DiskUsageStat{
Path: path,
Total: uint64(lpTotalNumberOfBytes),
Free: uint64(lpTotalNumberOfFreeBytes),
// Used: uint64(lpTotalNumberOfBytes) - uint64(lpTotalNumberOfFreeBytes)
// UsedPercent: (float64(lpTotalNumberOfBytes) - float64(lpTotalNumberOfFreeBytes)) / float64(lpTotalNumberOfBytes) * 100
// InodesTotal: 0,
// InodesFree: 0,
// InodesUsed: 0,
// InodesUsedPercent: 0,
}
ret.Total = uint64(lpTotalNumberOfBytes)
// ret.Free = uint64(lpFreeBytesAvailable) // python psutil does not use this
ret.Free = uint64(lpTotalNumberOfFreeBytes)
ret.Used = ret.Total - ret.Free
ret.UsedPercent = float64(ret.Used) / float64(ret.Total) * 100.0
//TODO: implement inodes stat
ret.InodesTotal = 0
ret.InodesUsed = 0
ret.InodesFree = 0
ret.InodesUsedPercent = 0.0
return ret, nil
}

@ -30,17 +30,17 @@ func VirtualMemory() (*VirtualMemoryStat, error) {
}
switch key {
case "MemTotal":
ret.Total = t * 1000
ret.Total = t * 1024
case "MemFree":
ret.Free = t * 1000
ret.Free = t * 1024
case "Buffers":
ret.Buffers = t * 1000
ret.Buffers = t * 1024
case "Cached":
ret.Cached = t * 1000
ret.Cached = t * 1024
case "Active":
ret.Active = t * 1000
ret.Active = t * 1024
case "Inactive":
ret.Inactive = t * 1000
ret.Inactive = t * 1024
}
}
ret.Available = ret.Free + ret.Buffers + ret.Cached

Loading…
Cancel
Save