MCPcopy Create free account
hub / github.com/containerd/cgroups / Stat

Method Stat

cgroup1/memory.go:234–317  ·  view source on GitHub ↗
(path string, stats *v1.Metrics)

Source from the content-addressed store, hash-verified

232}
233
234func (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 {

Callers

nothing calls this directly

Calls 4

PathMethod · 0.95
parseStatsMethod · 0.95
parseOomControlStatsMethod · 0.95
readUintFunction · 0.85

Tested by

no test coverage detected