mirror of
https://github.com/ClusterCockpit/cc-metric-collector.git
synced 2024-11-10 04:27:25 +01:00
Fix memstat collector with numa_stats option
This commit is contained in:
parent
a0acf01dc3
commit
ed511b7c09
@ -68,7 +68,8 @@ func getStats(filename string) map[string]MemstatStats {
|
|||||||
} else if len(linefields) == 5 {
|
} else if len(linefields) == 5 {
|
||||||
v, err := strconv.ParseFloat(linefields[3], 64)
|
v, err := strconv.ParseFloat(linefields[3], 64)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
stats[strings.Trim(linefields[0], ":")] = MemstatStats{
|
cclog.ComponentDebug("getStats", strings.Trim(linefields[2], ":"), v, linefields[4])
|
||||||
|
stats[strings.Trim(linefields[2], ":")] = MemstatStats{
|
||||||
value: v,
|
value: v,
|
||||||
unit: linefields[4],
|
unit: linefields[4],
|
||||||
}
|
}
|
||||||
@ -188,16 +189,20 @@ func (m *MemstatCollector) Read(interval time.Duration, output chan lp.CCMetric)
|
|||||||
unit := ""
|
unit := ""
|
||||||
if totalVal, total := stats["MemTotal"]; total {
|
if totalVal, total := stats["MemTotal"]; total {
|
||||||
if freeVal, free := stats["MemFree"]; free {
|
if freeVal, free := stats["MemFree"]; free {
|
||||||
|
memUsed = totalVal.value - freeVal.value
|
||||||
|
if len(totalVal.unit) > 0 {
|
||||||
|
unit = totalVal.unit
|
||||||
|
} else if len(freeVal.unit) > 0 {
|
||||||
|
unit = freeVal.unit
|
||||||
|
}
|
||||||
if bufVal, buffers := stats["Buffers"]; buffers {
|
if bufVal, buffers := stats["Buffers"]; buffers {
|
||||||
|
memUsed -= bufVal.value
|
||||||
|
if len(bufVal.unit) > 0 && len(unit) == 0 {
|
||||||
|
unit = bufVal.unit
|
||||||
|
}
|
||||||
if cacheVal, cached := stats["Cached"]; cached {
|
if cacheVal, cached := stats["Cached"]; cached {
|
||||||
memUsed = totalVal.value - (freeVal.value + bufVal.value + cacheVal.value)
|
memUsed -= cacheVal.value
|
||||||
if len(totalVal.unit) > 0 {
|
if len(cacheVal.unit) > 0 && len(unit) == 0 {
|
||||||
unit = totalVal.unit
|
|
||||||
} else if len(freeVal.unit) > 0 {
|
|
||||||
unit = freeVal.unit
|
|
||||||
} else if len(bufVal.unit) > 0 {
|
|
||||||
unit = bufVal.unit
|
|
||||||
} else if len(cacheVal.unit) > 0 {
|
|
||||||
unit = cacheVal.unit
|
unit = cacheVal.unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,12 +220,14 @@ func (m *MemstatCollector) Read(interval time.Duration, output chan lp.CCMetric)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if m.config.NodeStats {
|
if m.config.NodeStats {
|
||||||
|
cclog.ComponentInfo(m.name, MEMSTATFILE)
|
||||||
nodestats := getStats(MEMSTATFILE)
|
nodestats := getStats(MEMSTATFILE)
|
||||||
sendStats(nodestats, m.tags)
|
sendStats(nodestats, m.tags)
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.config.NumaStats {
|
if m.config.NumaStats {
|
||||||
for _, nodeConf := range m.nodefiles {
|
for _, nodeConf := range m.nodefiles {
|
||||||
|
cclog.ComponentInfo(m.name, nodeConf.file)
|
||||||
stats := getStats(nodeConf.file)
|
stats := getStats(nodeConf.file)
|
||||||
sendStats(stats, nodeConf.tags)
|
sendStats(stats, nodeConf.tags)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user