...
1syntax = "proto3";
2
3package io.containerd.cgroups.v1;
4
5import "gogoproto/gogo.proto";
6
7message Metrics {
8 repeated HugetlbStat hugetlb = 1;
9 PidsStat pids = 2;
10 CPUStat cpu = 3 [(gogoproto.customname) = "CPU"];
11 MemoryStat memory = 4;
12 BlkIOStat blkio = 5;
13 RdmaStat rdma = 6;
14 repeated NetworkStat network = 7;
15 CgroupStats cgroup_stats = 8;
16 MemoryOomControl memory_oom_control = 9;
17}
18
19message HugetlbStat {
20 uint64 usage = 1;
21 uint64 max = 2;
22 uint64 failcnt = 3;
23 string pagesize = 4;
24}
25
26message PidsStat {
27 uint64 current = 1;
28 uint64 limit = 2;
29}
30
31message CPUStat {
32 CPUUsage usage = 1;
33 Throttle throttling = 2;
34}
35
36message CPUUsage {
37 // values in nanoseconds
38 uint64 total = 1;
39 uint64 kernel = 2;
40 uint64 user = 3;
41 repeated uint64 per_cpu = 4 [(gogoproto.customname) = "PerCPU"];
42
43}
44
45message Throttle {
46 uint64 periods = 1;
47 uint64 throttled_periods = 2;
48 uint64 throttled_time = 3;
49}
50
51message MemoryStat {
52 uint64 cache = 1;
53 uint64 rss = 2 [(gogoproto.customname) = "RSS"];
54 uint64 rss_huge = 3 [(gogoproto.customname) = "RSSHuge"];
55 uint64 mapped_file = 4;
56 uint64 dirty = 5;
57 uint64 writeback = 6;
58 uint64 pg_pg_in = 7;
59 uint64 pg_pg_out = 8;
60 uint64 pg_fault = 9;
61 uint64 pg_maj_fault = 10;
62 uint64 inactive_anon = 11;
63 uint64 active_anon = 12;
64 uint64 inactive_file = 13;
65 uint64 active_file = 14;
66 uint64 unevictable = 15;
67 uint64 hierarchical_memory_limit = 16;
68 uint64 hierarchical_swap_limit = 17;
69 uint64 total_cache = 18;
70 uint64 total_rss = 19 [(gogoproto.customname) = "TotalRSS"];
71 uint64 total_rss_huge = 20 [(gogoproto.customname) = "TotalRSSHuge"];
72 uint64 total_mapped_file = 21;
73 uint64 total_dirty = 22;
74 uint64 total_writeback = 23;
75 uint64 total_pg_pg_in = 24;
76 uint64 total_pg_pg_out = 25;
77 uint64 total_pg_fault = 26;
78 uint64 total_pg_maj_fault = 27;
79 uint64 total_inactive_anon = 28;
80 uint64 total_active_anon = 29;
81 uint64 total_inactive_file = 30;
82 uint64 total_active_file = 31;
83 uint64 total_unevictable = 32;
84 MemoryEntry usage = 33;
85 MemoryEntry swap = 34;
86 MemoryEntry kernel = 35;
87 MemoryEntry kernel_tcp = 36 [(gogoproto.customname) = "KernelTCP"];
88
89}
90
91message MemoryEntry {
92 uint64 limit = 1;
93 uint64 usage = 2;
94 uint64 max = 3;
95 uint64 failcnt = 4;
96}
97
98message MemoryOomControl {
99 uint64 oom_kill_disable = 1;
100 uint64 under_oom = 2;
101 uint64 oom_kill = 3;
102}
103
104message BlkIOStat {
105 repeated BlkIOEntry io_service_bytes_recursive = 1;
106 repeated BlkIOEntry io_serviced_recursive = 2;
107 repeated BlkIOEntry io_queued_recursive = 3;
108 repeated BlkIOEntry io_service_time_recursive = 4;
109 repeated BlkIOEntry io_wait_time_recursive = 5;
110 repeated BlkIOEntry io_merged_recursive = 6;
111 repeated BlkIOEntry io_time_recursive = 7;
112 repeated BlkIOEntry sectors_recursive = 8;
113}
114
115message BlkIOEntry {
116 string op = 1;
117 string device = 2;
118 uint64 major = 3;
119 uint64 minor = 4;
120 uint64 value = 5;
121}
122
123message RdmaStat {
124 repeated RdmaEntry current = 1;
125 repeated RdmaEntry limit = 2;
126}
127
128message RdmaEntry {
129 string device = 1;
130 uint32 hca_handles = 2;
131 uint32 hca_objects = 3;
132}
133
134message NetworkStat {
135 string name = 1;
136 uint64 rx_bytes = 2;
137 uint64 rx_packets = 3;
138 uint64 rx_errors = 4;
139 uint64 rx_dropped = 5;
140 uint64 tx_bytes = 6;
141 uint64 tx_packets = 7;
142 uint64 tx_errors = 8;
143 uint64 tx_dropped = 9;
144}
145
146// CgroupStats exports per-cgroup statistics.
147message CgroupStats {
148 // number of tasks sleeping
149 uint64 nr_sleeping = 1;
150 // number of tasks running
151 uint64 nr_running = 2;
152 // number of tasks in stopped state
153 uint64 nr_stopped = 3;
154 // number of tasks in uninterruptible state
155 uint64 nr_uninterruptible = 4;
156 // number of tasks waiting on IO
157 uint64 nr_io_wait = 5;
158}
View as plain text