| /* |
| Copyright The containerd Authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package runc |
| |
| type Event struct { |
| // Type are the event type generated by runc |
| // If the type is "error" then check the Err field on the event for |
| // the actual error |
| Type string `json:"type"` |
| ID string `json:"id"` |
| Stats *Stats `json:"data,omitempty"` |
| // Err has a read error if we were unable to decode the event from runc |
| Err error `json:"-"` |
| } |
| |
| type Stats struct { |
| Cpu Cpu `json:"cpu"` |
| Memory Memory `json:"memory"` |
| Pids Pids `json:"pids"` |
| Blkio Blkio `json:"blkio"` |
| Hugetlb map[string]Hugetlb `json:"hugetlb"` |
| } |
| |
| type Hugetlb struct { |
| Usage uint64 `json:"usage,omitempty"` |
| Max uint64 `json:"max,omitempty"` |
| Failcnt uint64 `json:"failcnt"` |
| } |
| |
| type BlkioEntry struct { |
| Major uint64 `json:"major,omitempty"` |
| Minor uint64 `json:"minor,omitempty"` |
| Op string `json:"op,omitempty"` |
| Value uint64 `json:"value,omitempty"` |
| } |
| |
| type Blkio struct { |
| IoServiceBytesRecursive []BlkioEntry `json:"ioServiceBytesRecursive,omitempty"` |
| IoServicedRecursive []BlkioEntry `json:"ioServicedRecursive,omitempty"` |
| IoQueuedRecursive []BlkioEntry `json:"ioQueueRecursive,omitempty"` |
| IoServiceTimeRecursive []BlkioEntry `json:"ioServiceTimeRecursive,omitempty"` |
| IoWaitTimeRecursive []BlkioEntry `json:"ioWaitTimeRecursive,omitempty"` |
| IoMergedRecursive []BlkioEntry `json:"ioMergedRecursive,omitempty"` |
| IoTimeRecursive []BlkioEntry `json:"ioTimeRecursive,omitempty"` |
| SectorsRecursive []BlkioEntry `json:"sectorsRecursive,omitempty"` |
| } |
| |
| type Pids struct { |
| Current uint64 `json:"current,omitempty"` |
| Limit uint64 `json:"limit,omitempty"` |
| } |
| |
| type Throttling struct { |
| Periods uint64 `json:"periods,omitempty"` |
| ThrottledPeriods uint64 `json:"throttledPeriods,omitempty"` |
| ThrottledTime uint64 `json:"throttledTime,omitempty"` |
| } |
| |
| type CpuUsage struct { |
| // Units: nanoseconds. |
| Total uint64 `json:"total,omitempty"` |
| Percpu []uint64 `json:"percpu,omitempty"` |
| Kernel uint64 `json:"kernel"` |
| User uint64 `json:"user"` |
| } |
| |
| type Cpu struct { |
| Usage CpuUsage `json:"usage,omitempty"` |
| Throttling Throttling `json:"throttling,omitempty"` |
| } |
| |
| type MemoryEntry struct { |
| Limit uint64 `json:"limit"` |
| Usage uint64 `json:"usage,omitempty"` |
| Max uint64 `json:"max,omitempty"` |
| Failcnt uint64 `json:"failcnt"` |
| } |
| |
| type Memory struct { |
| Cache uint64 `json:"cache,omitempty"` |
| Usage MemoryEntry `json:"usage,omitempty"` |
| Swap MemoryEntry `json:"swap,omitempty"` |
| Kernel MemoryEntry `json:"kernel,omitempty"` |
| KernelTCP MemoryEntry `json:"kernelTCP,omitempty"` |
| Raw map[string]uint64 `json:"raw,omitempty"` |
| } |