(path string, stats *v1.Metrics)
| 232 | } |
| 233 | |
| 234 | func (m *memoryController) Stat(path string, stats *v1.Metrics) error { |
| 235 | fMemStat, err := os.Open(filepath.Join(m.Path(path), "memory.stat")) |
| 236 | if err != nil { |
| 237 | return err |
| 238 | } |
| 239 | defer fMemStat.Close() |
| 240 | stats.Memory = &v1.MemoryStat{ |
| 241 | Usage: &v1.MemoryEntry{}, |
| 242 | Swap: &v1.MemoryEntry{}, |
| 243 | Kernel: &v1.MemoryEntry{}, |
| 244 | KernelTCP: &v1.MemoryEntry{}, |
| 245 | } |
| 246 | if err := m.parseStats(fMemStat, stats.Memory); err != nil { |
| 247 | return err |
| 248 | } |
| 249 | |
| 250 | fMemOomControl, err := os.Open(filepath.Join(m.Path(path), "memory.oom_control")) |
| 251 | if err != nil { |
| 252 | return err |
| 253 | } |
| 254 | defer fMemOomControl.Close() |
| 255 | stats.MemoryOomControl = &v1.MemoryOomControl{} |
| 256 | if err := m.parseOomControlStats(fMemOomControl, stats.MemoryOomControl); err != nil { |
| 257 | return err |
| 258 | } |
| 259 | for _, t := range []struct { |
| 260 | module string |
| 261 | entry *v1.MemoryEntry |
| 262 | }{ |
| 263 | { |
| 264 | module: "", |
| 265 | entry: stats.Memory.Usage, |
| 266 | }, |
| 267 | { |
| 268 | module: "memsw", |
| 269 | entry: stats.Memory.Swap, |
| 270 | }, |
| 271 | { |
| 272 | module: "kmem", |
| 273 | entry: stats.Memory.Kernel, |
| 274 | }, |
| 275 | { |
| 276 | module: "kmem.tcp", |
| 277 | entry: stats.Memory.KernelTCP, |
| 278 | }, |
| 279 | } { |
| 280 | if _, ok := m.ignored[t.module]; ok { |
| 281 | continue |
| 282 | } |
| 283 | for _, tt := range []struct { |
| 284 | name string |
| 285 | value *uint64 |
| 286 | }{ |
| 287 | { |
| 288 | name: "usage_in_bytes", |
| 289 | value: &t.entry.Usage, |
| 290 | }, |
| 291 | { |
nothing calls this directly
no test coverage detected