Browse code

bump containerd/cgroups 5fbad35c2a7e855762d3c60f2e474ffcad0d470a

full diff: https://github.com/containerd/cgroups/compare/c4b9ac5c7601384c965b9646fc515884e091ebb9...5fbad35c2a7e855762d3c60f2e474ffcad0d470a

- containerd/cgroups#82 Add go module support
- containerd/cgroups#96 Move metrics proto package to stats/v1
- containerd/cgroups#97 Allow overriding the default /proc folder in blkioController
- containerd/cgroups#98 Allows ignoring memory modules
- containerd/cgroups#99 Add Go 1.13 to Travis
- containerd/cgroups#100 stats/v1: export per-cgroup stats

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 27552ceb15bca544820229e574427d4c1d6ef585)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2019/10/30 21:06:34
Showing 19 changed files
... ...
@@ -16,7 +16,7 @@ import (
16 16
 	"strings"
17 17
 	"time"
18 18
 
19
-	containerd_cgroups "github.com/containerd/cgroups"
19
+	v1 "github.com/containerd/cgroups/stats/v1"
20 20
 	"github.com/docker/docker/api/types"
21 21
 	"github.com/docker/docker/api/types/blkiodev"
22 22
 	pblkiodev "github.com/docker/docker/api/types/blkiodev"
... ...
@@ -1347,7 +1347,7 @@ func (daemon *Daemon) conditionalUnmountOnCleanup(container *container.Container
1347 1347
 	return daemon.Unmount(container)
1348 1348
 }
1349 1349
 
1350
-func copyBlkioEntry(entries []*containerd_cgroups.BlkIOEntry) []types.BlkioStatEntry {
1350
+func copyBlkioEntry(entries []*v1.BlkIOEntry) []types.BlkioStatEntry {
1351 1351
 	out := make([]types.BlkioStatEntry, len(entries))
1352 1352
 	for i, re := range entries {
1353 1353
 		out[i] = types.BlkioStatEntry{
... ...
@@ -3,8 +3,8 @@ package types // import "github.com/docker/docker/libcontainerd/types"
3 3
 import (
4 4
 	"time"
5 5
 
6
-	"github.com/containerd/cgroups"
7
-	"github.com/opencontainers/runtime-spec/specs-go"
6
+	v1 "github.com/containerd/cgroups/stats/v1"
7
+	specs "github.com/opencontainers/runtime-spec/specs-go"
8 8
 )
9 9
 
10 10
 // Summary is not used on linux
... ...
@@ -13,13 +13,13 @@ type Summary struct{}
13 13
 // Stats holds metrics properties as returned by containerd
14 14
 type Stats struct {
15 15
 	Read    time.Time
16
-	Metrics *cgroups.Metrics
16
+	Metrics *v1.Metrics
17 17
 }
18 18
 
19 19
 // InterfaceToStats returns a stats object from the platform-specific interface.
20 20
 func InterfaceToStats(read time.Time, v interface{}) *Stats {
21 21
 	return &Stats{
22
-		Metrics: v.(*cgroups.Metrics),
22
+		Metrics: v.(*v1.Metrics),
23 23
 		Read:    read,
24 24
 	}
25 25
 }
... ...
@@ -120,7 +120,7 @@ google.golang.org/genproto                          694d95ba50e67b2e363f3483057d
120 120
 github.com/containerd/containerd                    7c1e88399ec0b0b077121d9d5ad97e647b11c870
121 121
 github.com/containerd/fifo                          a9fb20d87448d386e6d50b1f2e1fa70dcf0de43c
122 122
 github.com/containerd/continuity                    aaeac12a7ffcd198ae25440a9dff125c2e2703a7
123
-github.com/containerd/cgroups                       c4b9ac5c7601384c965b9646fc515884e091ebb9
123
+github.com/containerd/cgroups                       5fbad35c2a7e855762d3c60f2e474ffcad0d470a
124 124
 github.com/containerd/console                       0650fd9eeb50bab4fc99dceb9f2e14cf58f36e7f
125 125
 github.com/containerd/go-runc                       e029b79d8cda8374981c64eba71f28ec38e5526f
126 126
 github.com/containerd/typeurl                       2a93cfde8c20b23de8eb84a5adbc234ddf7a9e8d
... ...
@@ -26,17 +26,33 @@ import (
26 26
 	"strconv"
27 27
 	"strings"
28 28
 
29
+	v1 "github.com/containerd/cgroups/stats/v1"
29 30
 	specs "github.com/opencontainers/runtime-spec/specs-go"
30 31
 )
31 32
 
32
-func NewBlkio(root string) *blkioController {
33
-	return &blkioController{
34
-		root: filepath.Join(root, string(Blkio)),
33
+// NewBlkio returns a Blkio controller given the root folder of cgroups.
34
+// It may optionally accept other configuration options, such as ProcRoot(path)
35
+func NewBlkio(root string, options ...func(controller *blkioController)) *blkioController {
36
+	ctrl := &blkioController{
37
+		root:     filepath.Join(root, string(Blkio)),
38
+		procRoot: "/proc",
39
+	}
40
+	for _, opt := range options {
41
+		opt(ctrl)
42
+	}
43
+	return ctrl
44
+}
45
+
46
+// ProcRoot overrides the default location of the "/proc" filesystem
47
+func ProcRoot(path string) func(controller *blkioController) {
48
+	return func(c *blkioController) {
49
+		c.procRoot = path
35 50
 	}
36 51
 }
37 52
 
38 53
 type blkioController struct {
39
-	root string
54
+	root     string
55
+	procRoot string
40 56
 }
41 57
 
42 58
 func (b *blkioController) Name() Name {
... ...
@@ -72,8 +88,8 @@ func (b *blkioController) Update(path string, resources *specs.LinuxResources) e
72 72
 	return b.Create(path, resources)
73 73
 }
74 74
 
75
-func (b *blkioController) Stat(path string, stats *Metrics) error {
76
-	stats.Blkio = &BlkIOStat{}
75
+func (b *blkioController) Stat(path string, stats *v1.Metrics) error {
76
+	stats.Blkio = &v1.BlkIOStat{}
77 77
 	settings := []blkioStatSettings{
78 78
 		{
79 79
 			name:  "throttle.io_serviced",
... ...
@@ -122,7 +138,7 @@ func (b *blkioController) Stat(path string, stats *Metrics) error {
122 122
 			},
123 123
 		)
124 124
 	}
125
-	f, err := os.Open("/proc/diskstats")
125
+	f, err := os.Open(filepath.Join(b.procRoot, "diskstats"))
126 126
 	if err != nil {
127 127
 		return err
128 128
 	}
... ...
@@ -141,7 +157,7 @@ func (b *blkioController) Stat(path string, stats *Metrics) error {
141 141
 	return nil
142 142
 }
143 143
 
144
-func (b *blkioController) readEntry(devices map[deviceKey]string, path, name string, entry *[]*BlkIOEntry) error {
144
+func (b *blkioController) readEntry(devices map[deviceKey]string, path, name string, entry *[]*v1.BlkIOEntry) error {
145 145
 	f, err := os.Open(filepath.Join(b.Path(path), fmt.Sprintf("blkio.%s", name)))
146 146
 	if err != nil {
147 147
 		return err
... ...
@@ -180,7 +196,7 @@ func (b *blkioController) readEntry(devices map[deviceKey]string, path, name str
180 180
 		if err != nil {
181 181
 			return err
182 182
 		}
183
-		*entry = append(*entry, &BlkIOEntry{
183
+		*entry = append(*entry, &v1.BlkIOEntry{
184 184
 			Device: devices[deviceKey{major, minor}],
185 185
 			Major:  major,
186 186
 			Minor:  minor,
... ...
@@ -268,7 +284,7 @@ type blkioSettings struct {
268 268
 
269 269
 type blkioStatSettings struct {
270 270
 	name  string
271
-	entry *[]*BlkIOEntry
271
+	entry *[]*v1.BlkIOEntry
272 272
 }
273 273
 
274 274
 func uintf(v interface{}) []byte {
... ...
@@ -25,6 +25,7 @@ import (
25 25
 	"strings"
26 26
 	"sync"
27 27
 
28
+	v1 "github.com/containerd/cgroups/stats/v1"
28 29
 	specs "github.com/opencontainers/runtime-spec/specs-go"
29 30
 	"github.com/pkg/errors"
30 31
 )
... ...
@@ -246,7 +247,7 @@ func (c *cgroup) Delete() error {
246 246
 }
247 247
 
248 248
 // Stat returns the current metrics for the cgroup
249
-func (c *cgroup) Stat(handlers ...ErrorHandler) (*Metrics, error) {
249
+func (c *cgroup) Stat(handlers ...ErrorHandler) (*v1.Metrics, error) {
250 250
 	c.mu.Lock()
251 251
 	defer c.mu.Unlock()
252 252
 	if c.err != nil {
... ...
@@ -256,10 +257,10 @@ func (c *cgroup) Stat(handlers ...ErrorHandler) (*Metrics, error) {
256 256
 		handlers = append(handlers, errPassthrough)
257 257
 	}
258 258
 	var (
259
-		stats = &Metrics{
260
-			CPU: &CPUStat{
261
-				Throttling: &Throttle{},
262
-				Usage:      &CPUUsage{},
259
+		stats = &v1.Metrics{
260
+			CPU: &v1.CPUStat{
261
+				Throttling: &v1.Throttle{},
262
+				Usage:      &v1.CPUUsage{},
263 263
 			},
264 264
 		}
265 265
 		wg   = &sync.WaitGroup{}
... ...
@@ -19,6 +19,7 @@ package cgroups
19 19
 import (
20 20
 	"os"
21 21
 
22
+	v1 "github.com/containerd/cgroups/stats/v1"
22 23
 	specs "github.com/opencontainers/runtime-spec/specs-go"
23 24
 )
24 25
 
... ...
@@ -68,7 +69,7 @@ type Cgroup interface {
68 68
 	// subsystems are moved one at a time
69 69
 	MoveTo(Cgroup) error
70 70
 	// Stat returns the stats for all subsystems in the cgroup
71
-	Stat(...ErrorHandler) (*Metrics, error)
71
+	Stat(...ErrorHandler) (*v1.Metrics, error)
72 72
 	// Update updates all the subsystems with the provided resource changes
73 73
 	Update(resources *specs.LinuxResources) error
74 74
 	// Processes returns all the processes in a select subsystem for the cgroup
... ...
@@ -24,6 +24,7 @@ import (
24 24
 	"path/filepath"
25 25
 	"strconv"
26 26
 
27
+	v1 "github.com/containerd/cgroups/stats/v1"
27 28
 	specs "github.com/opencontainers/runtime-spec/specs-go"
28 29
 )
29 30
 
... ...
@@ -100,7 +101,7 @@ func (c *cpuController) Update(path string, resources *specs.LinuxResources) err
100 100
 	return c.Create(path, resources)
101 101
 }
102 102
 
103
-func (c *cpuController) Stat(path string, stats *Metrics) error {
103
+func (c *cpuController) Stat(path string, stats *v1.Metrics) error {
104 104
 	f, err := os.Open(filepath.Join(c.Path(path), "cpu.stat"))
105 105
 	if err != nil {
106 106
 		return err
... ...
@@ -22,6 +22,8 @@ import (
22 22
 	"path/filepath"
23 23
 	"strconv"
24 24
 	"strings"
25
+
26
+	v1 "github.com/containerd/cgroups/stats/v1"
25 27
 )
26 28
 
27 29
 const nanosecondsInSecond = 1000000000
... ...
@@ -46,7 +48,7 @@ func (c *cpuacctController) Path(path string) string {
46 46
 	return filepath.Join(c.root, path)
47 47
 }
48 48
 
49
-func (c *cpuacctController) Stat(path string, stats *Metrics) error {
49
+func (c *cpuacctController) Stat(path string, stats *v1.Metrics) error {
50 50
 	user, kernel, err := c.getUsage(path)
51 51
 	if err != nil {
52 52
 		return err
53 53
new file mode 100644
... ...
@@ -0,0 +1,13 @@
0
+module github.com/containerd/cgroups
1
+
2
+go 1.12
3
+
4
+require (
5
+	github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
6
+	github.com/docker/go-units v0.4.0
7
+	github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e
8
+	github.com/gogo/protobuf v1.2.1
9
+	github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700
10
+	github.com/pkg/errors v0.8.1
11
+	golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f
12
+)
... ...
@@ -23,6 +23,7 @@ import (
23 23
 	"strconv"
24 24
 	"strings"
25 25
 
26
+	v1 "github.com/containerd/cgroups/stats/v1"
26 27
 	specs "github.com/opencontainers/runtime-spec/specs-go"
27 28
 )
28 29
 
... ...
@@ -67,7 +68,7 @@ func (h *hugetlbController) Create(path string, resources *specs.LinuxResources)
67 67
 	return nil
68 68
 }
69 69
 
70
-func (h *hugetlbController) Stat(path string, stats *Metrics) error {
70
+func (h *hugetlbController) Stat(path string, stats *v1.Metrics) error {
71 71
 	for _, size := range h.sizes {
72 72
 		s, err := h.readSizeStat(path, size)
73 73
 		if err != nil {
... ...
@@ -78,8 +79,8 @@ func (h *hugetlbController) Stat(path string, stats *Metrics) error {
78 78
 	return nil
79 79
 }
80 80
 
81
-func (h *hugetlbController) readSizeStat(path, size string) (*HugetlbStat, error) {
82
-	s := HugetlbStat{
81
+func (h *hugetlbController) readSizeStat(path, size string) (*v1.HugetlbStat, error) {
82
+	s := v1.HugetlbStat{
83 83
 		Pagesize: size,
84 84
 	}
85 85
 	for _, t := range []struct {
... ...
@@ -27,19 +27,48 @@ import (
27 27
 	"strings"
28 28
 	"syscall"
29 29
 
30
-	"golang.org/x/sys/unix"
31
-
30
+	v1 "github.com/containerd/cgroups/stats/v1"
32 31
 	specs "github.com/opencontainers/runtime-spec/specs-go"
32
+	"golang.org/x/sys/unix"
33 33
 )
34 34
 
35
-func NewMemory(root string) *memoryController {
36
-	return &memoryController{
37
-		root: filepath.Join(root, string(Memory)),
35
+// NewMemory returns a Memory controller given the root folder of cgroups.
36
+// It may optionally accept other configuration options, such as IgnoreModules(...)
37
+func NewMemory(root string, options ...func(*memoryController)) *memoryController {
38
+	mc := &memoryController{
39
+		root:    filepath.Join(root, string(Memory)),
40
+		ignored: map[string]struct{}{},
41
+	}
42
+	for _, opt := range options {
43
+		opt(mc)
44
+	}
45
+	return mc
46
+}
47
+
48
+// IgnoreModules configure the memory controller to not read memory metrics for some
49
+// module names (e.g. passing "memsw" would avoid all the memory.memsw.* entries)
50
+func IgnoreModules(names ...string) func(*memoryController) {
51
+	return func(mc *memoryController) {
52
+		for _, name := range names {
53
+			mc.ignored[name] = struct{}{}
54
+		}
55
+	}
56
+}
57
+
58
+// OptionalSwap allows the memory controller to not fail if cgroups is not accounting
59
+// Swap memory (there are no memory.memsw.* entries)
60
+func OptionalSwap() func(*memoryController) {
61
+	return func(mc *memoryController) {
62
+		_, err := os.Stat(filepath.Join(mc.root, "memory.memsw.usage_in_bytes"))
63
+		if os.IsNotExist(err) {
64
+			mc.ignored["memsw"] = struct{}{}
65
+		}
38 66
 	}
39 67
 }
40 68
 
41 69
 type memoryController struct {
42
-	root string
70
+	root    string
71
+	ignored map[string]struct{}
43 72
 }
44 73
 
45 74
 func (m *memoryController) Name() Name {
... ...
@@ -97,24 +126,24 @@ func (m *memoryController) Update(path string, resources *specs.LinuxResources)
97 97
 	return m.set(path, settings)
98 98
 }
99 99
 
100
-func (m *memoryController) Stat(path string, stats *Metrics) error {
100
+func (m *memoryController) Stat(path string, stats *v1.Metrics) error {
101 101
 	f, err := os.Open(filepath.Join(m.Path(path), "memory.stat"))
102 102
 	if err != nil {
103 103
 		return err
104 104
 	}
105 105
 	defer f.Close()
106
-	stats.Memory = &MemoryStat{
107
-		Usage:     &MemoryEntry{},
108
-		Swap:      &MemoryEntry{},
109
-		Kernel:    &MemoryEntry{},
110
-		KernelTCP: &MemoryEntry{},
106
+	stats.Memory = &v1.MemoryStat{
107
+		Usage:     &v1.MemoryEntry{},
108
+		Swap:      &v1.MemoryEntry{},
109
+		Kernel:    &v1.MemoryEntry{},
110
+		KernelTCP: &v1.MemoryEntry{},
111 111
 	}
112 112
 	if err := m.parseStats(f, stats.Memory); err != nil {
113 113
 		return err
114 114
 	}
115 115
 	for _, t := range []struct {
116 116
 		module string
117
-		entry  *MemoryEntry
117
+		entry  *v1.MemoryEntry
118 118
 	}{
119 119
 		{
120 120
 			module: "",
... ...
@@ -133,6 +162,9 @@ func (m *memoryController) Stat(path string, stats *Metrics) error {
133 133
 			entry:  stats.Memory.KernelTCP,
134 134
 		},
135 135
 	} {
136
+		if _, ok := m.ignored[t.module]; ok {
137
+			continue
138
+		}
136 139
 		for _, tt := range []struct {
137 140
 			name  string
138 141
 			value *uint64
... ...
@@ -197,7 +229,7 @@ func writeEventFD(root string, cfd, efd uintptr) error {
197 197
 	return err
198 198
 }
199 199
 
200
-func (m *memoryController) parseStats(r io.Reader, stat *MemoryStat) error {
200
+func (m *memoryController) parseStats(r io.Reader, stat *v1.MemoryStat) error {
201 201
 	var (
202 202
 		raw  = make(map[string]uint64)
203 203
 		sc   = bufio.NewScanner(r)
... ...
@@ -282,7 +314,7 @@ func getMemorySettings(resources *specs.LinuxResources) []memorySettings {
282 282
 			value: mem.Limit,
283 283
 		},
284 284
 		{
285
-			name: "soft_limit_in_bytes",
285
+			name:  "soft_limit_in_bytes",
286 286
 			value: mem.Reservation,
287 287
 		},
288 288
 		{
289 289
deleted file mode 100644
... ...
@@ -1,4696 +0,0 @@
1
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
2
-// source: github.com/containerd/cgroups/metrics.proto
3
-
4
-/*
5
-	Package cgroups is a generated protocol buffer package.
6
-
7
-	It is generated from these files:
8
-		github.com/containerd/cgroups/metrics.proto
9
-
10
-	It has these top-level messages:
11
-		Metrics
12
-		HugetlbStat
13
-		PidsStat
14
-		CPUStat
15
-		CPUUsage
16
-		Throttle
17
-		MemoryStat
18
-		MemoryEntry
19
-		BlkIOStat
20
-		BlkIOEntry
21
-		RdmaStat
22
-		RdmaEntry
23
-		NetworkStat
24
-*/
25
-package cgroups
26
-
27
-import proto "github.com/gogo/protobuf/proto"
28
-import fmt "fmt"
29
-import math "math"
30
-import _ "github.com/gogo/protobuf/gogoproto"
31
-
32
-import strings "strings"
33
-import reflect "reflect"
34
-
35
-import io "io"
36
-
37
-// Reference imports to suppress errors if they are not otherwise used.
38
-var _ = proto.Marshal
39
-var _ = fmt.Errorf
40
-var _ = math.Inf
41
-
42
-// This is a compile-time assertion to ensure that this generated file
43
-// is compatible with the proto package it is being compiled against.
44
-// A compilation error at this line likely means your copy of the
45
-// proto package needs to be updated.
46
-const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
47
-
48
-type Metrics struct {
49
-	Hugetlb []*HugetlbStat `protobuf:"bytes,1,rep,name=hugetlb" json:"hugetlb,omitempty"`
50
-	Pids    *PidsStat      `protobuf:"bytes,2,opt,name=pids" json:"pids,omitempty"`
51
-	CPU     *CPUStat       `protobuf:"bytes,3,opt,name=cpu" json:"cpu,omitempty"`
52
-	Memory  *MemoryStat    `protobuf:"bytes,4,opt,name=memory" json:"memory,omitempty"`
53
-	Blkio   *BlkIOStat     `protobuf:"bytes,5,opt,name=blkio" json:"blkio,omitempty"`
54
-	Rdma    *RdmaStat      `protobuf:"bytes,6,opt,name=rdma" json:"rdma,omitempty"`
55
-	Network []*NetworkStat `protobuf:"bytes,7,rep,name=network" json:"network,omitempty"`
56
-}
57
-
58
-func (m *Metrics) Reset()                    { *m = Metrics{} }
59
-func (*Metrics) ProtoMessage()               {}
60
-func (*Metrics) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{0} }
61
-
62
-type HugetlbStat struct {
63
-	Usage    uint64 `protobuf:"varint,1,opt,name=usage,proto3" json:"usage,omitempty"`
64
-	Max      uint64 `protobuf:"varint,2,opt,name=max,proto3" json:"max,omitempty"`
65
-	Failcnt  uint64 `protobuf:"varint,3,opt,name=failcnt,proto3" json:"failcnt,omitempty"`
66
-	Pagesize string `protobuf:"bytes,4,opt,name=pagesize,proto3" json:"pagesize,omitempty"`
67
-}
68
-
69
-func (m *HugetlbStat) Reset()                    { *m = HugetlbStat{} }
70
-func (*HugetlbStat) ProtoMessage()               {}
71
-func (*HugetlbStat) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{1} }
72
-
73
-type PidsStat struct {
74
-	Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"`
75
-	Limit   uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
76
-}
77
-
78
-func (m *PidsStat) Reset()                    { *m = PidsStat{} }
79
-func (*PidsStat) ProtoMessage()               {}
80
-func (*PidsStat) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{2} }
81
-
82
-type CPUStat struct {
83
-	Usage      *CPUUsage `protobuf:"bytes,1,opt,name=usage" json:"usage,omitempty"`
84
-	Throttling *Throttle `protobuf:"bytes,2,opt,name=throttling" json:"throttling,omitempty"`
85
-}
86
-
87
-func (m *CPUStat) Reset()                    { *m = CPUStat{} }
88
-func (*CPUStat) ProtoMessage()               {}
89
-func (*CPUStat) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{3} }
90
-
91
-type CPUUsage struct {
92
-	// values in nanoseconds
93
-	Total  uint64   `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
94
-	Kernel uint64   `protobuf:"varint,2,opt,name=kernel,proto3" json:"kernel,omitempty"`
95
-	User   uint64   `protobuf:"varint,3,opt,name=user,proto3" json:"user,omitempty"`
96
-	PerCPU []uint64 `protobuf:"varint,4,rep,packed,name=per_cpu,json=perCpu" json:"per_cpu,omitempty"`
97
-}
98
-
99
-func (m *CPUUsage) Reset()                    { *m = CPUUsage{} }
100
-func (*CPUUsage) ProtoMessage()               {}
101
-func (*CPUUsage) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{4} }
102
-
103
-type Throttle struct {
104
-	Periods          uint64 `protobuf:"varint,1,opt,name=periods,proto3" json:"periods,omitempty"`
105
-	ThrottledPeriods uint64 `protobuf:"varint,2,opt,name=throttled_periods,json=throttledPeriods,proto3" json:"throttled_periods,omitempty"`
106
-	ThrottledTime    uint64 `protobuf:"varint,3,opt,name=throttled_time,json=throttledTime,proto3" json:"throttled_time,omitempty"`
107
-}
108
-
109
-func (m *Throttle) Reset()                    { *m = Throttle{} }
110
-func (*Throttle) ProtoMessage()               {}
111
-func (*Throttle) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{5} }
112
-
113
-type MemoryStat struct {
114
-	Cache                   uint64       `protobuf:"varint,1,opt,name=cache,proto3" json:"cache,omitempty"`
115
-	RSS                     uint64       `protobuf:"varint,2,opt,name=rss,proto3" json:"rss,omitempty"`
116
-	RSSHuge                 uint64       `protobuf:"varint,3,opt,name=rss_huge,json=rssHuge,proto3" json:"rss_huge,omitempty"`
117
-	MappedFile              uint64       `protobuf:"varint,4,opt,name=mapped_file,json=mappedFile,proto3" json:"mapped_file,omitempty"`
118
-	Dirty                   uint64       `protobuf:"varint,5,opt,name=dirty,proto3" json:"dirty,omitempty"`
119
-	Writeback               uint64       `protobuf:"varint,6,opt,name=writeback,proto3" json:"writeback,omitempty"`
120
-	PgPgIn                  uint64       `protobuf:"varint,7,opt,name=pg_pg_in,json=pgPgIn,proto3" json:"pg_pg_in,omitempty"`
121
-	PgPgOut                 uint64       `protobuf:"varint,8,opt,name=pg_pg_out,json=pgPgOut,proto3" json:"pg_pg_out,omitempty"`
122
-	PgFault                 uint64       `protobuf:"varint,9,opt,name=pg_fault,json=pgFault,proto3" json:"pg_fault,omitempty"`
123
-	PgMajFault              uint64       `protobuf:"varint,10,opt,name=pg_maj_fault,json=pgMajFault,proto3" json:"pg_maj_fault,omitempty"`
124
-	InactiveAnon            uint64       `protobuf:"varint,11,opt,name=inactive_anon,json=inactiveAnon,proto3" json:"inactive_anon,omitempty"`
125
-	ActiveAnon              uint64       `protobuf:"varint,12,opt,name=active_anon,json=activeAnon,proto3" json:"active_anon,omitempty"`
126
-	InactiveFile            uint64       `protobuf:"varint,13,opt,name=inactive_file,json=inactiveFile,proto3" json:"inactive_file,omitempty"`
127
-	ActiveFile              uint64       `protobuf:"varint,14,opt,name=active_file,json=activeFile,proto3" json:"active_file,omitempty"`
128
-	Unevictable             uint64       `protobuf:"varint,15,opt,name=unevictable,proto3" json:"unevictable,omitempty"`
129
-	HierarchicalMemoryLimit uint64       `protobuf:"varint,16,opt,name=hierarchical_memory_limit,json=hierarchicalMemoryLimit,proto3" json:"hierarchical_memory_limit,omitempty"`
130
-	HierarchicalSwapLimit   uint64       `protobuf:"varint,17,opt,name=hierarchical_swap_limit,json=hierarchicalSwapLimit,proto3" json:"hierarchical_swap_limit,omitempty"`
131
-	TotalCache              uint64       `protobuf:"varint,18,opt,name=total_cache,json=totalCache,proto3" json:"total_cache,omitempty"`
132
-	TotalRSS                uint64       `protobuf:"varint,19,opt,name=total_rss,json=totalRss,proto3" json:"total_rss,omitempty"`
133
-	TotalRSSHuge            uint64       `protobuf:"varint,20,opt,name=total_rss_huge,json=totalRssHuge,proto3" json:"total_rss_huge,omitempty"`
134
-	TotalMappedFile         uint64       `protobuf:"varint,21,opt,name=total_mapped_file,json=totalMappedFile,proto3" json:"total_mapped_file,omitempty"`
135
-	TotalDirty              uint64       `protobuf:"varint,22,opt,name=total_dirty,json=totalDirty,proto3" json:"total_dirty,omitempty"`
136
-	TotalWriteback          uint64       `protobuf:"varint,23,opt,name=total_writeback,json=totalWriteback,proto3" json:"total_writeback,omitempty"`
137
-	TotalPgPgIn             uint64       `protobuf:"varint,24,opt,name=total_pg_pg_in,json=totalPgPgIn,proto3" json:"total_pg_pg_in,omitempty"`
138
-	TotalPgPgOut            uint64       `protobuf:"varint,25,opt,name=total_pg_pg_out,json=totalPgPgOut,proto3" json:"total_pg_pg_out,omitempty"`
139
-	TotalPgFault            uint64       `protobuf:"varint,26,opt,name=total_pg_fault,json=totalPgFault,proto3" json:"total_pg_fault,omitempty"`
140
-	TotalPgMajFault         uint64       `protobuf:"varint,27,opt,name=total_pg_maj_fault,json=totalPgMajFault,proto3" json:"total_pg_maj_fault,omitempty"`
141
-	TotalInactiveAnon       uint64       `protobuf:"varint,28,opt,name=total_inactive_anon,json=totalInactiveAnon,proto3" json:"total_inactive_anon,omitempty"`
142
-	TotalActiveAnon         uint64       `protobuf:"varint,29,opt,name=total_active_anon,json=totalActiveAnon,proto3" json:"total_active_anon,omitempty"`
143
-	TotalInactiveFile       uint64       `protobuf:"varint,30,opt,name=total_inactive_file,json=totalInactiveFile,proto3" json:"total_inactive_file,omitempty"`
144
-	TotalActiveFile         uint64       `protobuf:"varint,31,opt,name=total_active_file,json=totalActiveFile,proto3" json:"total_active_file,omitempty"`
145
-	TotalUnevictable        uint64       `protobuf:"varint,32,opt,name=total_unevictable,json=totalUnevictable,proto3" json:"total_unevictable,omitempty"`
146
-	Usage                   *MemoryEntry `protobuf:"bytes,33,opt,name=usage" json:"usage,omitempty"`
147
-	Swap                    *MemoryEntry `protobuf:"bytes,34,opt,name=swap" json:"swap,omitempty"`
148
-	Kernel                  *MemoryEntry `protobuf:"bytes,35,opt,name=kernel" json:"kernel,omitempty"`
149
-	KernelTCP               *MemoryEntry `protobuf:"bytes,36,opt,name=kernel_tcp,json=kernelTcp" json:"kernel_tcp,omitempty"`
150
-}
151
-
152
-func (m *MemoryStat) Reset()                    { *m = MemoryStat{} }
153
-func (*MemoryStat) ProtoMessage()               {}
154
-func (*MemoryStat) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{6} }
155
-
156
-type MemoryEntry struct {
157
-	Limit   uint64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
158
-	Usage   uint64 `protobuf:"varint,2,opt,name=usage,proto3" json:"usage,omitempty"`
159
-	Max     uint64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"`
160
-	Failcnt uint64 `protobuf:"varint,4,opt,name=failcnt,proto3" json:"failcnt,omitempty"`
161
-}
162
-
163
-func (m *MemoryEntry) Reset()                    { *m = MemoryEntry{} }
164
-func (*MemoryEntry) ProtoMessage()               {}
165
-func (*MemoryEntry) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{7} }
166
-
167
-type BlkIOStat struct {
168
-	IoServiceBytesRecursive []*BlkIOEntry `protobuf:"bytes,1,rep,name=io_service_bytes_recursive,json=ioServiceBytesRecursive" json:"io_service_bytes_recursive,omitempty"`
169
-	IoServicedRecursive     []*BlkIOEntry `protobuf:"bytes,2,rep,name=io_serviced_recursive,json=ioServicedRecursive" json:"io_serviced_recursive,omitempty"`
170
-	IoQueuedRecursive       []*BlkIOEntry `protobuf:"bytes,3,rep,name=io_queued_recursive,json=ioQueuedRecursive" json:"io_queued_recursive,omitempty"`
171
-	IoServiceTimeRecursive  []*BlkIOEntry `protobuf:"bytes,4,rep,name=io_service_time_recursive,json=ioServiceTimeRecursive" json:"io_service_time_recursive,omitempty"`
172
-	IoWaitTimeRecursive     []*BlkIOEntry `protobuf:"bytes,5,rep,name=io_wait_time_recursive,json=ioWaitTimeRecursive" json:"io_wait_time_recursive,omitempty"`
173
-	IoMergedRecursive       []*BlkIOEntry `protobuf:"bytes,6,rep,name=io_merged_recursive,json=ioMergedRecursive" json:"io_merged_recursive,omitempty"`
174
-	IoTimeRecursive         []*BlkIOEntry `protobuf:"bytes,7,rep,name=io_time_recursive,json=ioTimeRecursive" json:"io_time_recursive,omitempty"`
175
-	SectorsRecursive        []*BlkIOEntry `protobuf:"bytes,8,rep,name=sectors_recursive,json=sectorsRecursive" json:"sectors_recursive,omitempty"`
176
-}
177
-
178
-func (m *BlkIOStat) Reset()                    { *m = BlkIOStat{} }
179
-func (*BlkIOStat) ProtoMessage()               {}
180
-func (*BlkIOStat) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{8} }
181
-
182
-type BlkIOEntry struct {
183
-	Op     string `protobuf:"bytes,1,opt,name=op,proto3" json:"op,omitempty"`
184
-	Device string `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"`
185
-	Major  uint64 `protobuf:"varint,3,opt,name=major,proto3" json:"major,omitempty"`
186
-	Minor  uint64 `protobuf:"varint,4,opt,name=minor,proto3" json:"minor,omitempty"`
187
-	Value  uint64 `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"`
188
-}
189
-
190
-func (m *BlkIOEntry) Reset()                    { *m = BlkIOEntry{} }
191
-func (*BlkIOEntry) ProtoMessage()               {}
192
-func (*BlkIOEntry) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{9} }
193
-
194
-type RdmaStat struct {
195
-	Current []*RdmaEntry `protobuf:"bytes,1,rep,name=current" json:"current,omitempty"`
196
-	Limit   []*RdmaEntry `protobuf:"bytes,2,rep,name=limit" json:"limit,omitempty"`
197
-}
198
-
199
-func (m *RdmaStat) Reset()                    { *m = RdmaStat{} }
200
-func (*RdmaStat) ProtoMessage()               {}
201
-func (*RdmaStat) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{10} }
202
-
203
-type RdmaEntry struct {
204
-	Device     string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
205
-	HcaHandles uint32 `protobuf:"varint,2,opt,name=hca_handles,json=hcaHandles,proto3" json:"hca_handles,omitempty"`
206
-	HcaObjects uint32 `protobuf:"varint,3,opt,name=hca_objects,json=hcaObjects,proto3" json:"hca_objects,omitempty"`
207
-}
208
-
209
-func (m *RdmaEntry) Reset()                    { *m = RdmaEntry{} }
210
-func (*RdmaEntry) ProtoMessage()               {}
211
-func (*RdmaEntry) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{11} }
212
-
213
-type NetworkStat struct {
214
-	Name      string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
215
-	RxBytes   uint64 `protobuf:"varint,2,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
216
-	RxPackets uint64 `protobuf:"varint,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
217
-	RxErrors  uint64 `protobuf:"varint,4,opt,name=rx_errors,json=rxErrors,proto3" json:"rx_errors,omitempty"`
218
-	RxDropped uint64 `protobuf:"varint,5,opt,name=rx_dropped,json=rxDropped,proto3" json:"rx_dropped,omitempty"`
219
-	TxBytes   uint64 `protobuf:"varint,6,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
220
-	TxPackets uint64 `protobuf:"varint,7,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
221
-	TxErrors  uint64 `protobuf:"varint,8,opt,name=tx_errors,json=txErrors,proto3" json:"tx_errors,omitempty"`
222
-	TxDropped uint64 `protobuf:"varint,9,opt,name=tx_dropped,json=txDropped,proto3" json:"tx_dropped,omitempty"`
223
-}
224
-
225
-func (m *NetworkStat) Reset()                    { *m = NetworkStat{} }
226
-func (*NetworkStat) ProtoMessage()               {}
227
-func (*NetworkStat) Descriptor() ([]byte, []int) { return fileDescriptorMetrics, []int{12} }
228
-
229
-func init() {
230
-	proto.RegisterType((*Metrics)(nil), "io.containerd.cgroups.v1.Metrics")
231
-	proto.RegisterType((*HugetlbStat)(nil), "io.containerd.cgroups.v1.HugetlbStat")
232
-	proto.RegisterType((*PidsStat)(nil), "io.containerd.cgroups.v1.PidsStat")
233
-	proto.RegisterType((*CPUStat)(nil), "io.containerd.cgroups.v1.CPUStat")
234
-	proto.RegisterType((*CPUUsage)(nil), "io.containerd.cgroups.v1.CPUUsage")
235
-	proto.RegisterType((*Throttle)(nil), "io.containerd.cgroups.v1.Throttle")
236
-	proto.RegisterType((*MemoryStat)(nil), "io.containerd.cgroups.v1.MemoryStat")
237
-	proto.RegisterType((*MemoryEntry)(nil), "io.containerd.cgroups.v1.MemoryEntry")
238
-	proto.RegisterType((*BlkIOStat)(nil), "io.containerd.cgroups.v1.BlkIOStat")
239
-	proto.RegisterType((*BlkIOEntry)(nil), "io.containerd.cgroups.v1.BlkIOEntry")
240
-	proto.RegisterType((*RdmaStat)(nil), "io.containerd.cgroups.v1.RdmaStat")
241
-	proto.RegisterType((*RdmaEntry)(nil), "io.containerd.cgroups.v1.RdmaEntry")
242
-	proto.RegisterType((*NetworkStat)(nil), "io.containerd.cgroups.v1.NetworkStat")
243
-}
244
-func (m *Metrics) Marshal() (dAtA []byte, err error) {
245
-	size := m.Size()
246
-	dAtA = make([]byte, size)
247
-	n, err := m.MarshalTo(dAtA)
248
-	if err != nil {
249
-		return nil, err
250
-	}
251
-	return dAtA[:n], nil
252
-}
253
-
254
-func (m *Metrics) MarshalTo(dAtA []byte) (int, error) {
255
-	var i int
256
-	_ = i
257
-	var l int
258
-	_ = l
259
-	if len(m.Hugetlb) > 0 {
260
-		for _, msg := range m.Hugetlb {
261
-			dAtA[i] = 0xa
262
-			i++
263
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
264
-			n, err := msg.MarshalTo(dAtA[i:])
265
-			if err != nil {
266
-				return 0, err
267
-			}
268
-			i += n
269
-		}
270
-	}
271
-	if m.Pids != nil {
272
-		dAtA[i] = 0x12
273
-		i++
274
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Pids.Size()))
275
-		n1, err := m.Pids.MarshalTo(dAtA[i:])
276
-		if err != nil {
277
-			return 0, err
278
-		}
279
-		i += n1
280
-	}
281
-	if m.CPU != nil {
282
-		dAtA[i] = 0x1a
283
-		i++
284
-		i = encodeVarintMetrics(dAtA, i, uint64(m.CPU.Size()))
285
-		n2, err := m.CPU.MarshalTo(dAtA[i:])
286
-		if err != nil {
287
-			return 0, err
288
-		}
289
-		i += n2
290
-	}
291
-	if m.Memory != nil {
292
-		dAtA[i] = 0x22
293
-		i++
294
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Memory.Size()))
295
-		n3, err := m.Memory.MarshalTo(dAtA[i:])
296
-		if err != nil {
297
-			return 0, err
298
-		}
299
-		i += n3
300
-	}
301
-	if m.Blkio != nil {
302
-		dAtA[i] = 0x2a
303
-		i++
304
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Blkio.Size()))
305
-		n4, err := m.Blkio.MarshalTo(dAtA[i:])
306
-		if err != nil {
307
-			return 0, err
308
-		}
309
-		i += n4
310
-	}
311
-	if m.Rdma != nil {
312
-		dAtA[i] = 0x32
313
-		i++
314
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Rdma.Size()))
315
-		n5, err := m.Rdma.MarshalTo(dAtA[i:])
316
-		if err != nil {
317
-			return 0, err
318
-		}
319
-		i += n5
320
-	}
321
-	if len(m.Network) > 0 {
322
-		for _, msg := range m.Network {
323
-			dAtA[i] = 0x3a
324
-			i++
325
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
326
-			n, err := msg.MarshalTo(dAtA[i:])
327
-			if err != nil {
328
-				return 0, err
329
-			}
330
-			i += n
331
-		}
332
-	}
333
-	return i, nil
334
-}
335
-
336
-func (m *HugetlbStat) Marshal() (dAtA []byte, err error) {
337
-	size := m.Size()
338
-	dAtA = make([]byte, size)
339
-	n, err := m.MarshalTo(dAtA)
340
-	if err != nil {
341
-		return nil, err
342
-	}
343
-	return dAtA[:n], nil
344
-}
345
-
346
-func (m *HugetlbStat) MarshalTo(dAtA []byte) (int, error) {
347
-	var i int
348
-	_ = i
349
-	var l int
350
-	_ = l
351
-	if m.Usage != 0 {
352
-		dAtA[i] = 0x8
353
-		i++
354
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage))
355
-	}
356
-	if m.Max != 0 {
357
-		dAtA[i] = 0x10
358
-		i++
359
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Max))
360
-	}
361
-	if m.Failcnt != 0 {
362
-		dAtA[i] = 0x18
363
-		i++
364
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Failcnt))
365
-	}
366
-	if len(m.Pagesize) > 0 {
367
-		dAtA[i] = 0x22
368
-		i++
369
-		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Pagesize)))
370
-		i += copy(dAtA[i:], m.Pagesize)
371
-	}
372
-	return i, nil
373
-}
374
-
375
-func (m *PidsStat) Marshal() (dAtA []byte, err error) {
376
-	size := m.Size()
377
-	dAtA = make([]byte, size)
378
-	n, err := m.MarshalTo(dAtA)
379
-	if err != nil {
380
-		return nil, err
381
-	}
382
-	return dAtA[:n], nil
383
-}
384
-
385
-func (m *PidsStat) MarshalTo(dAtA []byte) (int, error) {
386
-	var i int
387
-	_ = i
388
-	var l int
389
-	_ = l
390
-	if m.Current != 0 {
391
-		dAtA[i] = 0x8
392
-		i++
393
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Current))
394
-	}
395
-	if m.Limit != 0 {
396
-		dAtA[i] = 0x10
397
-		i++
398
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Limit))
399
-	}
400
-	return i, nil
401
-}
402
-
403
-func (m *CPUStat) Marshal() (dAtA []byte, err error) {
404
-	size := m.Size()
405
-	dAtA = make([]byte, size)
406
-	n, err := m.MarshalTo(dAtA)
407
-	if err != nil {
408
-		return nil, err
409
-	}
410
-	return dAtA[:n], nil
411
-}
412
-
413
-func (m *CPUStat) MarshalTo(dAtA []byte) (int, error) {
414
-	var i int
415
-	_ = i
416
-	var l int
417
-	_ = l
418
-	if m.Usage != nil {
419
-		dAtA[i] = 0xa
420
-		i++
421
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage.Size()))
422
-		n6, err := m.Usage.MarshalTo(dAtA[i:])
423
-		if err != nil {
424
-			return 0, err
425
-		}
426
-		i += n6
427
-	}
428
-	if m.Throttling != nil {
429
-		dAtA[i] = 0x12
430
-		i++
431
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Throttling.Size()))
432
-		n7, err := m.Throttling.MarshalTo(dAtA[i:])
433
-		if err != nil {
434
-			return 0, err
435
-		}
436
-		i += n7
437
-	}
438
-	return i, nil
439
-}
440
-
441
-func (m *CPUUsage) Marshal() (dAtA []byte, err error) {
442
-	size := m.Size()
443
-	dAtA = make([]byte, size)
444
-	n, err := m.MarshalTo(dAtA)
445
-	if err != nil {
446
-		return nil, err
447
-	}
448
-	return dAtA[:n], nil
449
-}
450
-
451
-func (m *CPUUsage) MarshalTo(dAtA []byte) (int, error) {
452
-	var i int
453
-	_ = i
454
-	var l int
455
-	_ = l
456
-	if m.Total != 0 {
457
-		dAtA[i] = 0x8
458
-		i++
459
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Total))
460
-	}
461
-	if m.Kernel != 0 {
462
-		dAtA[i] = 0x10
463
-		i++
464
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Kernel))
465
-	}
466
-	if m.User != 0 {
467
-		dAtA[i] = 0x18
468
-		i++
469
-		i = encodeVarintMetrics(dAtA, i, uint64(m.User))
470
-	}
471
-	if len(m.PerCPU) > 0 {
472
-		dAtA9 := make([]byte, len(m.PerCPU)*10)
473
-		var j8 int
474
-		for _, num := range m.PerCPU {
475
-			for num >= 1<<7 {
476
-				dAtA9[j8] = uint8(uint64(num)&0x7f | 0x80)
477
-				num >>= 7
478
-				j8++
479
-			}
480
-			dAtA9[j8] = uint8(num)
481
-			j8++
482
-		}
483
-		dAtA[i] = 0x22
484
-		i++
485
-		i = encodeVarintMetrics(dAtA, i, uint64(j8))
486
-		i += copy(dAtA[i:], dAtA9[:j8])
487
-	}
488
-	return i, nil
489
-}
490
-
491
-func (m *Throttle) Marshal() (dAtA []byte, err error) {
492
-	size := m.Size()
493
-	dAtA = make([]byte, size)
494
-	n, err := m.MarshalTo(dAtA)
495
-	if err != nil {
496
-		return nil, err
497
-	}
498
-	return dAtA[:n], nil
499
-}
500
-
501
-func (m *Throttle) MarshalTo(dAtA []byte) (int, error) {
502
-	var i int
503
-	_ = i
504
-	var l int
505
-	_ = l
506
-	if m.Periods != 0 {
507
-		dAtA[i] = 0x8
508
-		i++
509
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Periods))
510
-	}
511
-	if m.ThrottledPeriods != 0 {
512
-		dAtA[i] = 0x10
513
-		i++
514
-		i = encodeVarintMetrics(dAtA, i, uint64(m.ThrottledPeriods))
515
-	}
516
-	if m.ThrottledTime != 0 {
517
-		dAtA[i] = 0x18
518
-		i++
519
-		i = encodeVarintMetrics(dAtA, i, uint64(m.ThrottledTime))
520
-	}
521
-	return i, nil
522
-}
523
-
524
-func (m *MemoryStat) Marshal() (dAtA []byte, err error) {
525
-	size := m.Size()
526
-	dAtA = make([]byte, size)
527
-	n, err := m.MarshalTo(dAtA)
528
-	if err != nil {
529
-		return nil, err
530
-	}
531
-	return dAtA[:n], nil
532
-}
533
-
534
-func (m *MemoryStat) MarshalTo(dAtA []byte) (int, error) {
535
-	var i int
536
-	_ = i
537
-	var l int
538
-	_ = l
539
-	if m.Cache != 0 {
540
-		dAtA[i] = 0x8
541
-		i++
542
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Cache))
543
-	}
544
-	if m.RSS != 0 {
545
-		dAtA[i] = 0x10
546
-		i++
547
-		i = encodeVarintMetrics(dAtA, i, uint64(m.RSS))
548
-	}
549
-	if m.RSSHuge != 0 {
550
-		dAtA[i] = 0x18
551
-		i++
552
-		i = encodeVarintMetrics(dAtA, i, uint64(m.RSSHuge))
553
-	}
554
-	if m.MappedFile != 0 {
555
-		dAtA[i] = 0x20
556
-		i++
557
-		i = encodeVarintMetrics(dAtA, i, uint64(m.MappedFile))
558
-	}
559
-	if m.Dirty != 0 {
560
-		dAtA[i] = 0x28
561
-		i++
562
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Dirty))
563
-	}
564
-	if m.Writeback != 0 {
565
-		dAtA[i] = 0x30
566
-		i++
567
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Writeback))
568
-	}
569
-	if m.PgPgIn != 0 {
570
-		dAtA[i] = 0x38
571
-		i++
572
-		i = encodeVarintMetrics(dAtA, i, uint64(m.PgPgIn))
573
-	}
574
-	if m.PgPgOut != 0 {
575
-		dAtA[i] = 0x40
576
-		i++
577
-		i = encodeVarintMetrics(dAtA, i, uint64(m.PgPgOut))
578
-	}
579
-	if m.PgFault != 0 {
580
-		dAtA[i] = 0x48
581
-		i++
582
-		i = encodeVarintMetrics(dAtA, i, uint64(m.PgFault))
583
-	}
584
-	if m.PgMajFault != 0 {
585
-		dAtA[i] = 0x50
586
-		i++
587
-		i = encodeVarintMetrics(dAtA, i, uint64(m.PgMajFault))
588
-	}
589
-	if m.InactiveAnon != 0 {
590
-		dAtA[i] = 0x58
591
-		i++
592
-		i = encodeVarintMetrics(dAtA, i, uint64(m.InactiveAnon))
593
-	}
594
-	if m.ActiveAnon != 0 {
595
-		dAtA[i] = 0x60
596
-		i++
597
-		i = encodeVarintMetrics(dAtA, i, uint64(m.ActiveAnon))
598
-	}
599
-	if m.InactiveFile != 0 {
600
-		dAtA[i] = 0x68
601
-		i++
602
-		i = encodeVarintMetrics(dAtA, i, uint64(m.InactiveFile))
603
-	}
604
-	if m.ActiveFile != 0 {
605
-		dAtA[i] = 0x70
606
-		i++
607
-		i = encodeVarintMetrics(dAtA, i, uint64(m.ActiveFile))
608
-	}
609
-	if m.Unevictable != 0 {
610
-		dAtA[i] = 0x78
611
-		i++
612
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Unevictable))
613
-	}
614
-	if m.HierarchicalMemoryLimit != 0 {
615
-		dAtA[i] = 0x80
616
-		i++
617
-		dAtA[i] = 0x1
618
-		i++
619
-		i = encodeVarintMetrics(dAtA, i, uint64(m.HierarchicalMemoryLimit))
620
-	}
621
-	if m.HierarchicalSwapLimit != 0 {
622
-		dAtA[i] = 0x88
623
-		i++
624
-		dAtA[i] = 0x1
625
-		i++
626
-		i = encodeVarintMetrics(dAtA, i, uint64(m.HierarchicalSwapLimit))
627
-	}
628
-	if m.TotalCache != 0 {
629
-		dAtA[i] = 0x90
630
-		i++
631
-		dAtA[i] = 0x1
632
-		i++
633
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalCache))
634
-	}
635
-	if m.TotalRSS != 0 {
636
-		dAtA[i] = 0x98
637
-		i++
638
-		dAtA[i] = 0x1
639
-		i++
640
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalRSS))
641
-	}
642
-	if m.TotalRSSHuge != 0 {
643
-		dAtA[i] = 0xa0
644
-		i++
645
-		dAtA[i] = 0x1
646
-		i++
647
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalRSSHuge))
648
-	}
649
-	if m.TotalMappedFile != 0 {
650
-		dAtA[i] = 0xa8
651
-		i++
652
-		dAtA[i] = 0x1
653
-		i++
654
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalMappedFile))
655
-	}
656
-	if m.TotalDirty != 0 {
657
-		dAtA[i] = 0xb0
658
-		i++
659
-		dAtA[i] = 0x1
660
-		i++
661
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalDirty))
662
-	}
663
-	if m.TotalWriteback != 0 {
664
-		dAtA[i] = 0xb8
665
-		i++
666
-		dAtA[i] = 0x1
667
-		i++
668
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalWriteback))
669
-	}
670
-	if m.TotalPgPgIn != 0 {
671
-		dAtA[i] = 0xc0
672
-		i++
673
-		dAtA[i] = 0x1
674
-		i++
675
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgPgIn))
676
-	}
677
-	if m.TotalPgPgOut != 0 {
678
-		dAtA[i] = 0xc8
679
-		i++
680
-		dAtA[i] = 0x1
681
-		i++
682
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgPgOut))
683
-	}
684
-	if m.TotalPgFault != 0 {
685
-		dAtA[i] = 0xd0
686
-		i++
687
-		dAtA[i] = 0x1
688
-		i++
689
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgFault))
690
-	}
691
-	if m.TotalPgMajFault != 0 {
692
-		dAtA[i] = 0xd8
693
-		i++
694
-		dAtA[i] = 0x1
695
-		i++
696
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgMajFault))
697
-	}
698
-	if m.TotalInactiveAnon != 0 {
699
-		dAtA[i] = 0xe0
700
-		i++
701
-		dAtA[i] = 0x1
702
-		i++
703
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalInactiveAnon))
704
-	}
705
-	if m.TotalActiveAnon != 0 {
706
-		dAtA[i] = 0xe8
707
-		i++
708
-		dAtA[i] = 0x1
709
-		i++
710
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalActiveAnon))
711
-	}
712
-	if m.TotalInactiveFile != 0 {
713
-		dAtA[i] = 0xf0
714
-		i++
715
-		dAtA[i] = 0x1
716
-		i++
717
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalInactiveFile))
718
-	}
719
-	if m.TotalActiveFile != 0 {
720
-		dAtA[i] = 0xf8
721
-		i++
722
-		dAtA[i] = 0x1
723
-		i++
724
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalActiveFile))
725
-	}
726
-	if m.TotalUnevictable != 0 {
727
-		dAtA[i] = 0x80
728
-		i++
729
-		dAtA[i] = 0x2
730
-		i++
731
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalUnevictable))
732
-	}
733
-	if m.Usage != nil {
734
-		dAtA[i] = 0x8a
735
-		i++
736
-		dAtA[i] = 0x2
737
-		i++
738
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage.Size()))
739
-		n10, err := m.Usage.MarshalTo(dAtA[i:])
740
-		if err != nil {
741
-			return 0, err
742
-		}
743
-		i += n10
744
-	}
745
-	if m.Swap != nil {
746
-		dAtA[i] = 0x92
747
-		i++
748
-		dAtA[i] = 0x2
749
-		i++
750
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Swap.Size()))
751
-		n11, err := m.Swap.MarshalTo(dAtA[i:])
752
-		if err != nil {
753
-			return 0, err
754
-		}
755
-		i += n11
756
-	}
757
-	if m.Kernel != nil {
758
-		dAtA[i] = 0x9a
759
-		i++
760
-		dAtA[i] = 0x2
761
-		i++
762
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Kernel.Size()))
763
-		n12, err := m.Kernel.MarshalTo(dAtA[i:])
764
-		if err != nil {
765
-			return 0, err
766
-		}
767
-		i += n12
768
-	}
769
-	if m.KernelTCP != nil {
770
-		dAtA[i] = 0xa2
771
-		i++
772
-		dAtA[i] = 0x2
773
-		i++
774
-		i = encodeVarintMetrics(dAtA, i, uint64(m.KernelTCP.Size()))
775
-		n13, err := m.KernelTCP.MarshalTo(dAtA[i:])
776
-		if err != nil {
777
-			return 0, err
778
-		}
779
-		i += n13
780
-	}
781
-	return i, nil
782
-}
783
-
784
-func (m *MemoryEntry) Marshal() (dAtA []byte, err error) {
785
-	size := m.Size()
786
-	dAtA = make([]byte, size)
787
-	n, err := m.MarshalTo(dAtA)
788
-	if err != nil {
789
-		return nil, err
790
-	}
791
-	return dAtA[:n], nil
792
-}
793
-
794
-func (m *MemoryEntry) MarshalTo(dAtA []byte) (int, error) {
795
-	var i int
796
-	_ = i
797
-	var l int
798
-	_ = l
799
-	if m.Limit != 0 {
800
-		dAtA[i] = 0x8
801
-		i++
802
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Limit))
803
-	}
804
-	if m.Usage != 0 {
805
-		dAtA[i] = 0x10
806
-		i++
807
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage))
808
-	}
809
-	if m.Max != 0 {
810
-		dAtA[i] = 0x18
811
-		i++
812
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Max))
813
-	}
814
-	if m.Failcnt != 0 {
815
-		dAtA[i] = 0x20
816
-		i++
817
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Failcnt))
818
-	}
819
-	return i, nil
820
-}
821
-
822
-func (m *BlkIOStat) Marshal() (dAtA []byte, err error) {
823
-	size := m.Size()
824
-	dAtA = make([]byte, size)
825
-	n, err := m.MarshalTo(dAtA)
826
-	if err != nil {
827
-		return nil, err
828
-	}
829
-	return dAtA[:n], nil
830
-}
831
-
832
-func (m *BlkIOStat) MarshalTo(dAtA []byte) (int, error) {
833
-	var i int
834
-	_ = i
835
-	var l int
836
-	_ = l
837
-	if len(m.IoServiceBytesRecursive) > 0 {
838
-		for _, msg := range m.IoServiceBytesRecursive {
839
-			dAtA[i] = 0xa
840
-			i++
841
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
842
-			n, err := msg.MarshalTo(dAtA[i:])
843
-			if err != nil {
844
-				return 0, err
845
-			}
846
-			i += n
847
-		}
848
-	}
849
-	if len(m.IoServicedRecursive) > 0 {
850
-		for _, msg := range m.IoServicedRecursive {
851
-			dAtA[i] = 0x12
852
-			i++
853
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
854
-			n, err := msg.MarshalTo(dAtA[i:])
855
-			if err != nil {
856
-				return 0, err
857
-			}
858
-			i += n
859
-		}
860
-	}
861
-	if len(m.IoQueuedRecursive) > 0 {
862
-		for _, msg := range m.IoQueuedRecursive {
863
-			dAtA[i] = 0x1a
864
-			i++
865
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
866
-			n, err := msg.MarshalTo(dAtA[i:])
867
-			if err != nil {
868
-				return 0, err
869
-			}
870
-			i += n
871
-		}
872
-	}
873
-	if len(m.IoServiceTimeRecursive) > 0 {
874
-		for _, msg := range m.IoServiceTimeRecursive {
875
-			dAtA[i] = 0x22
876
-			i++
877
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
878
-			n, err := msg.MarshalTo(dAtA[i:])
879
-			if err != nil {
880
-				return 0, err
881
-			}
882
-			i += n
883
-		}
884
-	}
885
-	if len(m.IoWaitTimeRecursive) > 0 {
886
-		for _, msg := range m.IoWaitTimeRecursive {
887
-			dAtA[i] = 0x2a
888
-			i++
889
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
890
-			n, err := msg.MarshalTo(dAtA[i:])
891
-			if err != nil {
892
-				return 0, err
893
-			}
894
-			i += n
895
-		}
896
-	}
897
-	if len(m.IoMergedRecursive) > 0 {
898
-		for _, msg := range m.IoMergedRecursive {
899
-			dAtA[i] = 0x32
900
-			i++
901
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
902
-			n, err := msg.MarshalTo(dAtA[i:])
903
-			if err != nil {
904
-				return 0, err
905
-			}
906
-			i += n
907
-		}
908
-	}
909
-	if len(m.IoTimeRecursive) > 0 {
910
-		for _, msg := range m.IoTimeRecursive {
911
-			dAtA[i] = 0x3a
912
-			i++
913
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
914
-			n, err := msg.MarshalTo(dAtA[i:])
915
-			if err != nil {
916
-				return 0, err
917
-			}
918
-			i += n
919
-		}
920
-	}
921
-	if len(m.SectorsRecursive) > 0 {
922
-		for _, msg := range m.SectorsRecursive {
923
-			dAtA[i] = 0x42
924
-			i++
925
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
926
-			n, err := msg.MarshalTo(dAtA[i:])
927
-			if err != nil {
928
-				return 0, err
929
-			}
930
-			i += n
931
-		}
932
-	}
933
-	return i, nil
934
-}
935
-
936
-func (m *BlkIOEntry) Marshal() (dAtA []byte, err error) {
937
-	size := m.Size()
938
-	dAtA = make([]byte, size)
939
-	n, err := m.MarshalTo(dAtA)
940
-	if err != nil {
941
-		return nil, err
942
-	}
943
-	return dAtA[:n], nil
944
-}
945
-
946
-func (m *BlkIOEntry) MarshalTo(dAtA []byte) (int, error) {
947
-	var i int
948
-	_ = i
949
-	var l int
950
-	_ = l
951
-	if len(m.Op) > 0 {
952
-		dAtA[i] = 0xa
953
-		i++
954
-		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Op)))
955
-		i += copy(dAtA[i:], m.Op)
956
-	}
957
-	if len(m.Device) > 0 {
958
-		dAtA[i] = 0x12
959
-		i++
960
-		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Device)))
961
-		i += copy(dAtA[i:], m.Device)
962
-	}
963
-	if m.Major != 0 {
964
-		dAtA[i] = 0x18
965
-		i++
966
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Major))
967
-	}
968
-	if m.Minor != 0 {
969
-		dAtA[i] = 0x20
970
-		i++
971
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Minor))
972
-	}
973
-	if m.Value != 0 {
974
-		dAtA[i] = 0x28
975
-		i++
976
-		i = encodeVarintMetrics(dAtA, i, uint64(m.Value))
977
-	}
978
-	return i, nil
979
-}
980
-
981
-func (m *RdmaStat) Marshal() (dAtA []byte, err error) {
982
-	size := m.Size()
983
-	dAtA = make([]byte, size)
984
-	n, err := m.MarshalTo(dAtA)
985
-	if err != nil {
986
-		return nil, err
987
-	}
988
-	return dAtA[:n], nil
989
-}
990
-
991
-func (m *RdmaStat) MarshalTo(dAtA []byte) (int, error) {
992
-	var i int
993
-	_ = i
994
-	var l int
995
-	_ = l
996
-	if len(m.Current) > 0 {
997
-		for _, msg := range m.Current {
998
-			dAtA[i] = 0xa
999
-			i++
1000
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1001
-			n, err := msg.MarshalTo(dAtA[i:])
1002
-			if err != nil {
1003
-				return 0, err
1004
-			}
1005
-			i += n
1006
-		}
1007
-	}
1008
-	if len(m.Limit) > 0 {
1009
-		for _, msg := range m.Limit {
1010
-			dAtA[i] = 0x12
1011
-			i++
1012
-			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1013
-			n, err := msg.MarshalTo(dAtA[i:])
1014
-			if err != nil {
1015
-				return 0, err
1016
-			}
1017
-			i += n
1018
-		}
1019
-	}
1020
-	return i, nil
1021
-}
1022
-
1023
-func (m *RdmaEntry) Marshal() (dAtA []byte, err error) {
1024
-	size := m.Size()
1025
-	dAtA = make([]byte, size)
1026
-	n, err := m.MarshalTo(dAtA)
1027
-	if err != nil {
1028
-		return nil, err
1029
-	}
1030
-	return dAtA[:n], nil
1031
-}
1032
-
1033
-func (m *RdmaEntry) MarshalTo(dAtA []byte) (int, error) {
1034
-	var i int
1035
-	_ = i
1036
-	var l int
1037
-	_ = l
1038
-	if len(m.Device) > 0 {
1039
-		dAtA[i] = 0xa
1040
-		i++
1041
-		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Device)))
1042
-		i += copy(dAtA[i:], m.Device)
1043
-	}
1044
-	if m.HcaHandles != 0 {
1045
-		dAtA[i] = 0x10
1046
-		i++
1047
-		i = encodeVarintMetrics(dAtA, i, uint64(m.HcaHandles))
1048
-	}
1049
-	if m.HcaObjects != 0 {
1050
-		dAtA[i] = 0x18
1051
-		i++
1052
-		i = encodeVarintMetrics(dAtA, i, uint64(m.HcaObjects))
1053
-	}
1054
-	return i, nil
1055
-}
1056
-
1057
-func (m *NetworkStat) Marshal() (dAtA []byte, err error) {
1058
-	size := m.Size()
1059
-	dAtA = make([]byte, size)
1060
-	n, err := m.MarshalTo(dAtA)
1061
-	if err != nil {
1062
-		return nil, err
1063
-	}
1064
-	return dAtA[:n], nil
1065
-}
1066
-
1067
-func (m *NetworkStat) MarshalTo(dAtA []byte) (int, error) {
1068
-	var i int
1069
-	_ = i
1070
-	var l int
1071
-	_ = l
1072
-	if len(m.Name) > 0 {
1073
-		dAtA[i] = 0xa
1074
-		i++
1075
-		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Name)))
1076
-		i += copy(dAtA[i:], m.Name)
1077
-	}
1078
-	if m.RxBytes != 0 {
1079
-		dAtA[i] = 0x10
1080
-		i++
1081
-		i = encodeVarintMetrics(dAtA, i, uint64(m.RxBytes))
1082
-	}
1083
-	if m.RxPackets != 0 {
1084
-		dAtA[i] = 0x18
1085
-		i++
1086
-		i = encodeVarintMetrics(dAtA, i, uint64(m.RxPackets))
1087
-	}
1088
-	if m.RxErrors != 0 {
1089
-		dAtA[i] = 0x20
1090
-		i++
1091
-		i = encodeVarintMetrics(dAtA, i, uint64(m.RxErrors))
1092
-	}
1093
-	if m.RxDropped != 0 {
1094
-		dAtA[i] = 0x28
1095
-		i++
1096
-		i = encodeVarintMetrics(dAtA, i, uint64(m.RxDropped))
1097
-	}
1098
-	if m.TxBytes != 0 {
1099
-		dAtA[i] = 0x30
1100
-		i++
1101
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TxBytes))
1102
-	}
1103
-	if m.TxPackets != 0 {
1104
-		dAtA[i] = 0x38
1105
-		i++
1106
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TxPackets))
1107
-	}
1108
-	if m.TxErrors != 0 {
1109
-		dAtA[i] = 0x40
1110
-		i++
1111
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TxErrors))
1112
-	}
1113
-	if m.TxDropped != 0 {
1114
-		dAtA[i] = 0x48
1115
-		i++
1116
-		i = encodeVarintMetrics(dAtA, i, uint64(m.TxDropped))
1117
-	}
1118
-	return i, nil
1119
-}
1120
-
1121
-func encodeVarintMetrics(dAtA []byte, offset int, v uint64) int {
1122
-	for v >= 1<<7 {
1123
-		dAtA[offset] = uint8(v&0x7f | 0x80)
1124
-		v >>= 7
1125
-		offset++
1126
-	}
1127
-	dAtA[offset] = uint8(v)
1128
-	return offset + 1
1129
-}
1130
-func (m *Metrics) Size() (n int) {
1131
-	var l int
1132
-	_ = l
1133
-	if len(m.Hugetlb) > 0 {
1134
-		for _, e := range m.Hugetlb {
1135
-			l = e.Size()
1136
-			n += 1 + l + sovMetrics(uint64(l))
1137
-		}
1138
-	}
1139
-	if m.Pids != nil {
1140
-		l = m.Pids.Size()
1141
-		n += 1 + l + sovMetrics(uint64(l))
1142
-	}
1143
-	if m.CPU != nil {
1144
-		l = m.CPU.Size()
1145
-		n += 1 + l + sovMetrics(uint64(l))
1146
-	}
1147
-	if m.Memory != nil {
1148
-		l = m.Memory.Size()
1149
-		n += 1 + l + sovMetrics(uint64(l))
1150
-	}
1151
-	if m.Blkio != nil {
1152
-		l = m.Blkio.Size()
1153
-		n += 1 + l + sovMetrics(uint64(l))
1154
-	}
1155
-	if m.Rdma != nil {
1156
-		l = m.Rdma.Size()
1157
-		n += 1 + l + sovMetrics(uint64(l))
1158
-	}
1159
-	if len(m.Network) > 0 {
1160
-		for _, e := range m.Network {
1161
-			l = e.Size()
1162
-			n += 1 + l + sovMetrics(uint64(l))
1163
-		}
1164
-	}
1165
-	return n
1166
-}
1167
-
1168
-func (m *HugetlbStat) Size() (n int) {
1169
-	var l int
1170
-	_ = l
1171
-	if m.Usage != 0 {
1172
-		n += 1 + sovMetrics(uint64(m.Usage))
1173
-	}
1174
-	if m.Max != 0 {
1175
-		n += 1 + sovMetrics(uint64(m.Max))
1176
-	}
1177
-	if m.Failcnt != 0 {
1178
-		n += 1 + sovMetrics(uint64(m.Failcnt))
1179
-	}
1180
-	l = len(m.Pagesize)
1181
-	if l > 0 {
1182
-		n += 1 + l + sovMetrics(uint64(l))
1183
-	}
1184
-	return n
1185
-}
1186
-
1187
-func (m *PidsStat) Size() (n int) {
1188
-	var l int
1189
-	_ = l
1190
-	if m.Current != 0 {
1191
-		n += 1 + sovMetrics(uint64(m.Current))
1192
-	}
1193
-	if m.Limit != 0 {
1194
-		n += 1 + sovMetrics(uint64(m.Limit))
1195
-	}
1196
-	return n
1197
-}
1198
-
1199
-func (m *CPUStat) Size() (n int) {
1200
-	var l int
1201
-	_ = l
1202
-	if m.Usage != nil {
1203
-		l = m.Usage.Size()
1204
-		n += 1 + l + sovMetrics(uint64(l))
1205
-	}
1206
-	if m.Throttling != nil {
1207
-		l = m.Throttling.Size()
1208
-		n += 1 + l + sovMetrics(uint64(l))
1209
-	}
1210
-	return n
1211
-}
1212
-
1213
-func (m *CPUUsage) Size() (n int) {
1214
-	var l int
1215
-	_ = l
1216
-	if m.Total != 0 {
1217
-		n += 1 + sovMetrics(uint64(m.Total))
1218
-	}
1219
-	if m.Kernel != 0 {
1220
-		n += 1 + sovMetrics(uint64(m.Kernel))
1221
-	}
1222
-	if m.User != 0 {
1223
-		n += 1 + sovMetrics(uint64(m.User))
1224
-	}
1225
-	if len(m.PerCPU) > 0 {
1226
-		l = 0
1227
-		for _, e := range m.PerCPU {
1228
-			l += sovMetrics(uint64(e))
1229
-		}
1230
-		n += 1 + sovMetrics(uint64(l)) + l
1231
-	}
1232
-	return n
1233
-}
1234
-
1235
-func (m *Throttle) Size() (n int) {
1236
-	var l int
1237
-	_ = l
1238
-	if m.Periods != 0 {
1239
-		n += 1 + sovMetrics(uint64(m.Periods))
1240
-	}
1241
-	if m.ThrottledPeriods != 0 {
1242
-		n += 1 + sovMetrics(uint64(m.ThrottledPeriods))
1243
-	}
1244
-	if m.ThrottledTime != 0 {
1245
-		n += 1 + sovMetrics(uint64(m.ThrottledTime))
1246
-	}
1247
-	return n
1248
-}
1249
-
1250
-func (m *MemoryStat) Size() (n int) {
1251
-	var l int
1252
-	_ = l
1253
-	if m.Cache != 0 {
1254
-		n += 1 + sovMetrics(uint64(m.Cache))
1255
-	}
1256
-	if m.RSS != 0 {
1257
-		n += 1 + sovMetrics(uint64(m.RSS))
1258
-	}
1259
-	if m.RSSHuge != 0 {
1260
-		n += 1 + sovMetrics(uint64(m.RSSHuge))
1261
-	}
1262
-	if m.MappedFile != 0 {
1263
-		n += 1 + sovMetrics(uint64(m.MappedFile))
1264
-	}
1265
-	if m.Dirty != 0 {
1266
-		n += 1 + sovMetrics(uint64(m.Dirty))
1267
-	}
1268
-	if m.Writeback != 0 {
1269
-		n += 1 + sovMetrics(uint64(m.Writeback))
1270
-	}
1271
-	if m.PgPgIn != 0 {
1272
-		n += 1 + sovMetrics(uint64(m.PgPgIn))
1273
-	}
1274
-	if m.PgPgOut != 0 {
1275
-		n += 1 + sovMetrics(uint64(m.PgPgOut))
1276
-	}
1277
-	if m.PgFault != 0 {
1278
-		n += 1 + sovMetrics(uint64(m.PgFault))
1279
-	}
1280
-	if m.PgMajFault != 0 {
1281
-		n += 1 + sovMetrics(uint64(m.PgMajFault))
1282
-	}
1283
-	if m.InactiveAnon != 0 {
1284
-		n += 1 + sovMetrics(uint64(m.InactiveAnon))
1285
-	}
1286
-	if m.ActiveAnon != 0 {
1287
-		n += 1 + sovMetrics(uint64(m.ActiveAnon))
1288
-	}
1289
-	if m.InactiveFile != 0 {
1290
-		n += 1 + sovMetrics(uint64(m.InactiveFile))
1291
-	}
1292
-	if m.ActiveFile != 0 {
1293
-		n += 1 + sovMetrics(uint64(m.ActiveFile))
1294
-	}
1295
-	if m.Unevictable != 0 {
1296
-		n += 1 + sovMetrics(uint64(m.Unevictable))
1297
-	}
1298
-	if m.HierarchicalMemoryLimit != 0 {
1299
-		n += 2 + sovMetrics(uint64(m.HierarchicalMemoryLimit))
1300
-	}
1301
-	if m.HierarchicalSwapLimit != 0 {
1302
-		n += 2 + sovMetrics(uint64(m.HierarchicalSwapLimit))
1303
-	}
1304
-	if m.TotalCache != 0 {
1305
-		n += 2 + sovMetrics(uint64(m.TotalCache))
1306
-	}
1307
-	if m.TotalRSS != 0 {
1308
-		n += 2 + sovMetrics(uint64(m.TotalRSS))
1309
-	}
1310
-	if m.TotalRSSHuge != 0 {
1311
-		n += 2 + sovMetrics(uint64(m.TotalRSSHuge))
1312
-	}
1313
-	if m.TotalMappedFile != 0 {
1314
-		n += 2 + sovMetrics(uint64(m.TotalMappedFile))
1315
-	}
1316
-	if m.TotalDirty != 0 {
1317
-		n += 2 + sovMetrics(uint64(m.TotalDirty))
1318
-	}
1319
-	if m.TotalWriteback != 0 {
1320
-		n += 2 + sovMetrics(uint64(m.TotalWriteback))
1321
-	}
1322
-	if m.TotalPgPgIn != 0 {
1323
-		n += 2 + sovMetrics(uint64(m.TotalPgPgIn))
1324
-	}
1325
-	if m.TotalPgPgOut != 0 {
1326
-		n += 2 + sovMetrics(uint64(m.TotalPgPgOut))
1327
-	}
1328
-	if m.TotalPgFault != 0 {
1329
-		n += 2 + sovMetrics(uint64(m.TotalPgFault))
1330
-	}
1331
-	if m.TotalPgMajFault != 0 {
1332
-		n += 2 + sovMetrics(uint64(m.TotalPgMajFault))
1333
-	}
1334
-	if m.TotalInactiveAnon != 0 {
1335
-		n += 2 + sovMetrics(uint64(m.TotalInactiveAnon))
1336
-	}
1337
-	if m.TotalActiveAnon != 0 {
1338
-		n += 2 + sovMetrics(uint64(m.TotalActiveAnon))
1339
-	}
1340
-	if m.TotalInactiveFile != 0 {
1341
-		n += 2 + sovMetrics(uint64(m.TotalInactiveFile))
1342
-	}
1343
-	if m.TotalActiveFile != 0 {
1344
-		n += 2 + sovMetrics(uint64(m.TotalActiveFile))
1345
-	}
1346
-	if m.TotalUnevictable != 0 {
1347
-		n += 2 + sovMetrics(uint64(m.TotalUnevictable))
1348
-	}
1349
-	if m.Usage != nil {
1350
-		l = m.Usage.Size()
1351
-		n += 2 + l + sovMetrics(uint64(l))
1352
-	}
1353
-	if m.Swap != nil {
1354
-		l = m.Swap.Size()
1355
-		n += 2 + l + sovMetrics(uint64(l))
1356
-	}
1357
-	if m.Kernel != nil {
1358
-		l = m.Kernel.Size()
1359
-		n += 2 + l + sovMetrics(uint64(l))
1360
-	}
1361
-	if m.KernelTCP != nil {
1362
-		l = m.KernelTCP.Size()
1363
-		n += 2 + l + sovMetrics(uint64(l))
1364
-	}
1365
-	return n
1366
-}
1367
-
1368
-func (m *MemoryEntry) Size() (n int) {
1369
-	var l int
1370
-	_ = l
1371
-	if m.Limit != 0 {
1372
-		n += 1 + sovMetrics(uint64(m.Limit))
1373
-	}
1374
-	if m.Usage != 0 {
1375
-		n += 1 + sovMetrics(uint64(m.Usage))
1376
-	}
1377
-	if m.Max != 0 {
1378
-		n += 1 + sovMetrics(uint64(m.Max))
1379
-	}
1380
-	if m.Failcnt != 0 {
1381
-		n += 1 + sovMetrics(uint64(m.Failcnt))
1382
-	}
1383
-	return n
1384
-}
1385
-
1386
-func (m *BlkIOStat) Size() (n int) {
1387
-	var l int
1388
-	_ = l
1389
-	if len(m.IoServiceBytesRecursive) > 0 {
1390
-		for _, e := range m.IoServiceBytesRecursive {
1391
-			l = e.Size()
1392
-			n += 1 + l + sovMetrics(uint64(l))
1393
-		}
1394
-	}
1395
-	if len(m.IoServicedRecursive) > 0 {
1396
-		for _, e := range m.IoServicedRecursive {
1397
-			l = e.Size()
1398
-			n += 1 + l + sovMetrics(uint64(l))
1399
-		}
1400
-	}
1401
-	if len(m.IoQueuedRecursive) > 0 {
1402
-		for _, e := range m.IoQueuedRecursive {
1403
-			l = e.Size()
1404
-			n += 1 + l + sovMetrics(uint64(l))
1405
-		}
1406
-	}
1407
-	if len(m.IoServiceTimeRecursive) > 0 {
1408
-		for _, e := range m.IoServiceTimeRecursive {
1409
-			l = e.Size()
1410
-			n += 1 + l + sovMetrics(uint64(l))
1411
-		}
1412
-	}
1413
-	if len(m.IoWaitTimeRecursive) > 0 {
1414
-		for _, e := range m.IoWaitTimeRecursive {
1415
-			l = e.Size()
1416
-			n += 1 + l + sovMetrics(uint64(l))
1417
-		}
1418
-	}
1419
-	if len(m.IoMergedRecursive) > 0 {
1420
-		for _, e := range m.IoMergedRecursive {
1421
-			l = e.Size()
1422
-			n += 1 + l + sovMetrics(uint64(l))
1423
-		}
1424
-	}
1425
-	if len(m.IoTimeRecursive) > 0 {
1426
-		for _, e := range m.IoTimeRecursive {
1427
-			l = e.Size()
1428
-			n += 1 + l + sovMetrics(uint64(l))
1429
-		}
1430
-	}
1431
-	if len(m.SectorsRecursive) > 0 {
1432
-		for _, e := range m.SectorsRecursive {
1433
-			l = e.Size()
1434
-			n += 1 + l + sovMetrics(uint64(l))
1435
-		}
1436
-	}
1437
-	return n
1438
-}
1439
-
1440
-func (m *BlkIOEntry) Size() (n int) {
1441
-	var l int
1442
-	_ = l
1443
-	l = len(m.Op)
1444
-	if l > 0 {
1445
-		n += 1 + l + sovMetrics(uint64(l))
1446
-	}
1447
-	l = len(m.Device)
1448
-	if l > 0 {
1449
-		n += 1 + l + sovMetrics(uint64(l))
1450
-	}
1451
-	if m.Major != 0 {
1452
-		n += 1 + sovMetrics(uint64(m.Major))
1453
-	}
1454
-	if m.Minor != 0 {
1455
-		n += 1 + sovMetrics(uint64(m.Minor))
1456
-	}
1457
-	if m.Value != 0 {
1458
-		n += 1 + sovMetrics(uint64(m.Value))
1459
-	}
1460
-	return n
1461
-}
1462
-
1463
-func (m *RdmaStat) Size() (n int) {
1464
-	var l int
1465
-	_ = l
1466
-	if len(m.Current) > 0 {
1467
-		for _, e := range m.Current {
1468
-			l = e.Size()
1469
-			n += 1 + l + sovMetrics(uint64(l))
1470
-		}
1471
-	}
1472
-	if len(m.Limit) > 0 {
1473
-		for _, e := range m.Limit {
1474
-			l = e.Size()
1475
-			n += 1 + l + sovMetrics(uint64(l))
1476
-		}
1477
-	}
1478
-	return n
1479
-}
1480
-
1481
-func (m *RdmaEntry) Size() (n int) {
1482
-	var l int
1483
-	_ = l
1484
-	l = len(m.Device)
1485
-	if l > 0 {
1486
-		n += 1 + l + sovMetrics(uint64(l))
1487
-	}
1488
-	if m.HcaHandles != 0 {
1489
-		n += 1 + sovMetrics(uint64(m.HcaHandles))
1490
-	}
1491
-	if m.HcaObjects != 0 {
1492
-		n += 1 + sovMetrics(uint64(m.HcaObjects))
1493
-	}
1494
-	return n
1495
-}
1496
-
1497
-func (m *NetworkStat) Size() (n int) {
1498
-	var l int
1499
-	_ = l
1500
-	l = len(m.Name)
1501
-	if l > 0 {
1502
-		n += 1 + l + sovMetrics(uint64(l))
1503
-	}
1504
-	if m.RxBytes != 0 {
1505
-		n += 1 + sovMetrics(uint64(m.RxBytes))
1506
-	}
1507
-	if m.RxPackets != 0 {
1508
-		n += 1 + sovMetrics(uint64(m.RxPackets))
1509
-	}
1510
-	if m.RxErrors != 0 {
1511
-		n += 1 + sovMetrics(uint64(m.RxErrors))
1512
-	}
1513
-	if m.RxDropped != 0 {
1514
-		n += 1 + sovMetrics(uint64(m.RxDropped))
1515
-	}
1516
-	if m.TxBytes != 0 {
1517
-		n += 1 + sovMetrics(uint64(m.TxBytes))
1518
-	}
1519
-	if m.TxPackets != 0 {
1520
-		n += 1 + sovMetrics(uint64(m.TxPackets))
1521
-	}
1522
-	if m.TxErrors != 0 {
1523
-		n += 1 + sovMetrics(uint64(m.TxErrors))
1524
-	}
1525
-	if m.TxDropped != 0 {
1526
-		n += 1 + sovMetrics(uint64(m.TxDropped))
1527
-	}
1528
-	return n
1529
-}
1530
-
1531
-func sovMetrics(x uint64) (n int) {
1532
-	for {
1533
-		n++
1534
-		x >>= 7
1535
-		if x == 0 {
1536
-			break
1537
-		}
1538
-	}
1539
-	return n
1540
-}
1541
-func sozMetrics(x uint64) (n int) {
1542
-	return sovMetrics(uint64((x << 1) ^ uint64((int64(x) >> 63))))
1543
-}
1544
-func (this *Metrics) String() string {
1545
-	if this == nil {
1546
-		return "nil"
1547
-	}
1548
-	s := strings.Join([]string{`&Metrics{`,
1549
-		`Hugetlb:` + strings.Replace(fmt.Sprintf("%v", this.Hugetlb), "HugetlbStat", "HugetlbStat", 1) + `,`,
1550
-		`Pids:` + strings.Replace(fmt.Sprintf("%v", this.Pids), "PidsStat", "PidsStat", 1) + `,`,
1551
-		`CPU:` + strings.Replace(fmt.Sprintf("%v", this.CPU), "CPUStat", "CPUStat", 1) + `,`,
1552
-		`Memory:` + strings.Replace(fmt.Sprintf("%v", this.Memory), "MemoryStat", "MemoryStat", 1) + `,`,
1553
-		`Blkio:` + strings.Replace(fmt.Sprintf("%v", this.Blkio), "BlkIOStat", "BlkIOStat", 1) + `,`,
1554
-		`Rdma:` + strings.Replace(fmt.Sprintf("%v", this.Rdma), "RdmaStat", "RdmaStat", 1) + `,`,
1555
-		`Network:` + strings.Replace(fmt.Sprintf("%v", this.Network), "NetworkStat", "NetworkStat", 1) + `,`,
1556
-		`}`,
1557
-	}, "")
1558
-	return s
1559
-}
1560
-func (this *HugetlbStat) String() string {
1561
-	if this == nil {
1562
-		return "nil"
1563
-	}
1564
-	s := strings.Join([]string{`&HugetlbStat{`,
1565
-		`Usage:` + fmt.Sprintf("%v", this.Usage) + `,`,
1566
-		`Max:` + fmt.Sprintf("%v", this.Max) + `,`,
1567
-		`Failcnt:` + fmt.Sprintf("%v", this.Failcnt) + `,`,
1568
-		`Pagesize:` + fmt.Sprintf("%v", this.Pagesize) + `,`,
1569
-		`}`,
1570
-	}, "")
1571
-	return s
1572
-}
1573
-func (this *PidsStat) String() string {
1574
-	if this == nil {
1575
-		return "nil"
1576
-	}
1577
-	s := strings.Join([]string{`&PidsStat{`,
1578
-		`Current:` + fmt.Sprintf("%v", this.Current) + `,`,
1579
-		`Limit:` + fmt.Sprintf("%v", this.Limit) + `,`,
1580
-		`}`,
1581
-	}, "")
1582
-	return s
1583
-}
1584
-func (this *CPUStat) String() string {
1585
-	if this == nil {
1586
-		return "nil"
1587
-	}
1588
-	s := strings.Join([]string{`&CPUStat{`,
1589
-		`Usage:` + strings.Replace(fmt.Sprintf("%v", this.Usage), "CPUUsage", "CPUUsage", 1) + `,`,
1590
-		`Throttling:` + strings.Replace(fmt.Sprintf("%v", this.Throttling), "Throttle", "Throttle", 1) + `,`,
1591
-		`}`,
1592
-	}, "")
1593
-	return s
1594
-}
1595
-func (this *CPUUsage) String() string {
1596
-	if this == nil {
1597
-		return "nil"
1598
-	}
1599
-	s := strings.Join([]string{`&CPUUsage{`,
1600
-		`Total:` + fmt.Sprintf("%v", this.Total) + `,`,
1601
-		`Kernel:` + fmt.Sprintf("%v", this.Kernel) + `,`,
1602
-		`User:` + fmt.Sprintf("%v", this.User) + `,`,
1603
-		`PerCPU:` + fmt.Sprintf("%v", this.PerCPU) + `,`,
1604
-		`}`,
1605
-	}, "")
1606
-	return s
1607
-}
1608
-func (this *Throttle) String() string {
1609
-	if this == nil {
1610
-		return "nil"
1611
-	}
1612
-	s := strings.Join([]string{`&Throttle{`,
1613
-		`Periods:` + fmt.Sprintf("%v", this.Periods) + `,`,
1614
-		`ThrottledPeriods:` + fmt.Sprintf("%v", this.ThrottledPeriods) + `,`,
1615
-		`ThrottledTime:` + fmt.Sprintf("%v", this.ThrottledTime) + `,`,
1616
-		`}`,
1617
-	}, "")
1618
-	return s
1619
-}
1620
-func (this *MemoryStat) String() string {
1621
-	if this == nil {
1622
-		return "nil"
1623
-	}
1624
-	s := strings.Join([]string{`&MemoryStat{`,
1625
-		`Cache:` + fmt.Sprintf("%v", this.Cache) + `,`,
1626
-		`RSS:` + fmt.Sprintf("%v", this.RSS) + `,`,
1627
-		`RSSHuge:` + fmt.Sprintf("%v", this.RSSHuge) + `,`,
1628
-		`MappedFile:` + fmt.Sprintf("%v", this.MappedFile) + `,`,
1629
-		`Dirty:` + fmt.Sprintf("%v", this.Dirty) + `,`,
1630
-		`Writeback:` + fmt.Sprintf("%v", this.Writeback) + `,`,
1631
-		`PgPgIn:` + fmt.Sprintf("%v", this.PgPgIn) + `,`,
1632
-		`PgPgOut:` + fmt.Sprintf("%v", this.PgPgOut) + `,`,
1633
-		`PgFault:` + fmt.Sprintf("%v", this.PgFault) + `,`,
1634
-		`PgMajFault:` + fmt.Sprintf("%v", this.PgMajFault) + `,`,
1635
-		`InactiveAnon:` + fmt.Sprintf("%v", this.InactiveAnon) + `,`,
1636
-		`ActiveAnon:` + fmt.Sprintf("%v", this.ActiveAnon) + `,`,
1637
-		`InactiveFile:` + fmt.Sprintf("%v", this.InactiveFile) + `,`,
1638
-		`ActiveFile:` + fmt.Sprintf("%v", this.ActiveFile) + `,`,
1639
-		`Unevictable:` + fmt.Sprintf("%v", this.Unevictable) + `,`,
1640
-		`HierarchicalMemoryLimit:` + fmt.Sprintf("%v", this.HierarchicalMemoryLimit) + `,`,
1641
-		`HierarchicalSwapLimit:` + fmt.Sprintf("%v", this.HierarchicalSwapLimit) + `,`,
1642
-		`TotalCache:` + fmt.Sprintf("%v", this.TotalCache) + `,`,
1643
-		`TotalRSS:` + fmt.Sprintf("%v", this.TotalRSS) + `,`,
1644
-		`TotalRSSHuge:` + fmt.Sprintf("%v", this.TotalRSSHuge) + `,`,
1645
-		`TotalMappedFile:` + fmt.Sprintf("%v", this.TotalMappedFile) + `,`,
1646
-		`TotalDirty:` + fmt.Sprintf("%v", this.TotalDirty) + `,`,
1647
-		`TotalWriteback:` + fmt.Sprintf("%v", this.TotalWriteback) + `,`,
1648
-		`TotalPgPgIn:` + fmt.Sprintf("%v", this.TotalPgPgIn) + `,`,
1649
-		`TotalPgPgOut:` + fmt.Sprintf("%v", this.TotalPgPgOut) + `,`,
1650
-		`TotalPgFault:` + fmt.Sprintf("%v", this.TotalPgFault) + `,`,
1651
-		`TotalPgMajFault:` + fmt.Sprintf("%v", this.TotalPgMajFault) + `,`,
1652
-		`TotalInactiveAnon:` + fmt.Sprintf("%v", this.TotalInactiveAnon) + `,`,
1653
-		`TotalActiveAnon:` + fmt.Sprintf("%v", this.TotalActiveAnon) + `,`,
1654
-		`TotalInactiveFile:` + fmt.Sprintf("%v", this.TotalInactiveFile) + `,`,
1655
-		`TotalActiveFile:` + fmt.Sprintf("%v", this.TotalActiveFile) + `,`,
1656
-		`TotalUnevictable:` + fmt.Sprintf("%v", this.TotalUnevictable) + `,`,
1657
-		`Usage:` + strings.Replace(fmt.Sprintf("%v", this.Usage), "MemoryEntry", "MemoryEntry", 1) + `,`,
1658
-		`Swap:` + strings.Replace(fmt.Sprintf("%v", this.Swap), "MemoryEntry", "MemoryEntry", 1) + `,`,
1659
-		`Kernel:` + strings.Replace(fmt.Sprintf("%v", this.Kernel), "MemoryEntry", "MemoryEntry", 1) + `,`,
1660
-		`KernelTCP:` + strings.Replace(fmt.Sprintf("%v", this.KernelTCP), "MemoryEntry", "MemoryEntry", 1) + `,`,
1661
-		`}`,
1662
-	}, "")
1663
-	return s
1664
-}
1665
-func (this *MemoryEntry) String() string {
1666
-	if this == nil {
1667
-		return "nil"
1668
-	}
1669
-	s := strings.Join([]string{`&MemoryEntry{`,
1670
-		`Limit:` + fmt.Sprintf("%v", this.Limit) + `,`,
1671
-		`Usage:` + fmt.Sprintf("%v", this.Usage) + `,`,
1672
-		`Max:` + fmt.Sprintf("%v", this.Max) + `,`,
1673
-		`Failcnt:` + fmt.Sprintf("%v", this.Failcnt) + `,`,
1674
-		`}`,
1675
-	}, "")
1676
-	return s
1677
-}
1678
-func (this *BlkIOStat) String() string {
1679
-	if this == nil {
1680
-		return "nil"
1681
-	}
1682
-	s := strings.Join([]string{`&BlkIOStat{`,
1683
-		`IoServiceBytesRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoServiceBytesRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1684
-		`IoServicedRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoServicedRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1685
-		`IoQueuedRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoQueuedRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1686
-		`IoServiceTimeRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoServiceTimeRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1687
-		`IoWaitTimeRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoWaitTimeRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1688
-		`IoMergedRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoMergedRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1689
-		`IoTimeRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoTimeRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1690
-		`SectorsRecursive:` + strings.Replace(fmt.Sprintf("%v", this.SectorsRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
1691
-		`}`,
1692
-	}, "")
1693
-	return s
1694
-}
1695
-func (this *BlkIOEntry) String() string {
1696
-	if this == nil {
1697
-		return "nil"
1698
-	}
1699
-	s := strings.Join([]string{`&BlkIOEntry{`,
1700
-		`Op:` + fmt.Sprintf("%v", this.Op) + `,`,
1701
-		`Device:` + fmt.Sprintf("%v", this.Device) + `,`,
1702
-		`Major:` + fmt.Sprintf("%v", this.Major) + `,`,
1703
-		`Minor:` + fmt.Sprintf("%v", this.Minor) + `,`,
1704
-		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
1705
-		`}`,
1706
-	}, "")
1707
-	return s
1708
-}
1709
-func (this *RdmaStat) String() string {
1710
-	if this == nil {
1711
-		return "nil"
1712
-	}
1713
-	s := strings.Join([]string{`&RdmaStat{`,
1714
-		`Current:` + strings.Replace(fmt.Sprintf("%v", this.Current), "RdmaEntry", "RdmaEntry", 1) + `,`,
1715
-		`Limit:` + strings.Replace(fmt.Sprintf("%v", this.Limit), "RdmaEntry", "RdmaEntry", 1) + `,`,
1716
-		`}`,
1717
-	}, "")
1718
-	return s
1719
-}
1720
-func (this *RdmaEntry) String() string {
1721
-	if this == nil {
1722
-		return "nil"
1723
-	}
1724
-	s := strings.Join([]string{`&RdmaEntry{`,
1725
-		`Device:` + fmt.Sprintf("%v", this.Device) + `,`,
1726
-		`HcaHandles:` + fmt.Sprintf("%v", this.HcaHandles) + `,`,
1727
-		`HcaObjects:` + fmt.Sprintf("%v", this.HcaObjects) + `,`,
1728
-		`}`,
1729
-	}, "")
1730
-	return s
1731
-}
1732
-func (this *NetworkStat) String() string {
1733
-	if this == nil {
1734
-		return "nil"
1735
-	}
1736
-	s := strings.Join([]string{`&NetworkStat{`,
1737
-		`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
1738
-		`RxBytes:` + fmt.Sprintf("%v", this.RxBytes) + `,`,
1739
-		`RxPackets:` + fmt.Sprintf("%v", this.RxPackets) + `,`,
1740
-		`RxErrors:` + fmt.Sprintf("%v", this.RxErrors) + `,`,
1741
-		`RxDropped:` + fmt.Sprintf("%v", this.RxDropped) + `,`,
1742
-		`TxBytes:` + fmt.Sprintf("%v", this.TxBytes) + `,`,
1743
-		`TxPackets:` + fmt.Sprintf("%v", this.TxPackets) + `,`,
1744
-		`TxErrors:` + fmt.Sprintf("%v", this.TxErrors) + `,`,
1745
-		`TxDropped:` + fmt.Sprintf("%v", this.TxDropped) + `,`,
1746
-		`}`,
1747
-	}, "")
1748
-	return s
1749
-}
1750
-func valueToStringMetrics(v interface{}) string {
1751
-	rv := reflect.ValueOf(v)
1752
-	if rv.IsNil() {
1753
-		return "nil"
1754
-	}
1755
-	pv := reflect.Indirect(rv).Interface()
1756
-	return fmt.Sprintf("*%v", pv)
1757
-}
1758
-func (m *Metrics) Unmarshal(dAtA []byte) error {
1759
-	l := len(dAtA)
1760
-	iNdEx := 0
1761
-	for iNdEx < l {
1762
-		preIndex := iNdEx
1763
-		var wire uint64
1764
-		for shift := uint(0); ; shift += 7 {
1765
-			if shift >= 64 {
1766
-				return ErrIntOverflowMetrics
1767
-			}
1768
-			if iNdEx >= l {
1769
-				return io.ErrUnexpectedEOF
1770
-			}
1771
-			b := dAtA[iNdEx]
1772
-			iNdEx++
1773
-			wire |= (uint64(b) & 0x7F) << shift
1774
-			if b < 0x80 {
1775
-				break
1776
-			}
1777
-		}
1778
-		fieldNum := int32(wire >> 3)
1779
-		wireType := int(wire & 0x7)
1780
-		if wireType == 4 {
1781
-			return fmt.Errorf("proto: Metrics: wiretype end group for non-group")
1782
-		}
1783
-		if fieldNum <= 0 {
1784
-			return fmt.Errorf("proto: Metrics: illegal tag %d (wire type %d)", fieldNum, wire)
1785
-		}
1786
-		switch fieldNum {
1787
-		case 1:
1788
-			if wireType != 2 {
1789
-				return fmt.Errorf("proto: wrong wireType = %d for field Hugetlb", wireType)
1790
-			}
1791
-			var msglen int
1792
-			for shift := uint(0); ; shift += 7 {
1793
-				if shift >= 64 {
1794
-					return ErrIntOverflowMetrics
1795
-				}
1796
-				if iNdEx >= l {
1797
-					return io.ErrUnexpectedEOF
1798
-				}
1799
-				b := dAtA[iNdEx]
1800
-				iNdEx++
1801
-				msglen |= (int(b) & 0x7F) << shift
1802
-				if b < 0x80 {
1803
-					break
1804
-				}
1805
-			}
1806
-			if msglen < 0 {
1807
-				return ErrInvalidLengthMetrics
1808
-			}
1809
-			postIndex := iNdEx + msglen
1810
-			if postIndex > l {
1811
-				return io.ErrUnexpectedEOF
1812
-			}
1813
-			m.Hugetlb = append(m.Hugetlb, &HugetlbStat{})
1814
-			if err := m.Hugetlb[len(m.Hugetlb)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
1815
-				return err
1816
-			}
1817
-			iNdEx = postIndex
1818
-		case 2:
1819
-			if wireType != 2 {
1820
-				return fmt.Errorf("proto: wrong wireType = %d for field Pids", wireType)
1821
-			}
1822
-			var msglen int
1823
-			for shift := uint(0); ; shift += 7 {
1824
-				if shift >= 64 {
1825
-					return ErrIntOverflowMetrics
1826
-				}
1827
-				if iNdEx >= l {
1828
-					return io.ErrUnexpectedEOF
1829
-				}
1830
-				b := dAtA[iNdEx]
1831
-				iNdEx++
1832
-				msglen |= (int(b) & 0x7F) << shift
1833
-				if b < 0x80 {
1834
-					break
1835
-				}
1836
-			}
1837
-			if msglen < 0 {
1838
-				return ErrInvalidLengthMetrics
1839
-			}
1840
-			postIndex := iNdEx + msglen
1841
-			if postIndex > l {
1842
-				return io.ErrUnexpectedEOF
1843
-			}
1844
-			if m.Pids == nil {
1845
-				m.Pids = &PidsStat{}
1846
-			}
1847
-			if err := m.Pids.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
1848
-				return err
1849
-			}
1850
-			iNdEx = postIndex
1851
-		case 3:
1852
-			if wireType != 2 {
1853
-				return fmt.Errorf("proto: wrong wireType = %d for field CPU", wireType)
1854
-			}
1855
-			var msglen int
1856
-			for shift := uint(0); ; shift += 7 {
1857
-				if shift >= 64 {
1858
-					return ErrIntOverflowMetrics
1859
-				}
1860
-				if iNdEx >= l {
1861
-					return io.ErrUnexpectedEOF
1862
-				}
1863
-				b := dAtA[iNdEx]
1864
-				iNdEx++
1865
-				msglen |= (int(b) & 0x7F) << shift
1866
-				if b < 0x80 {
1867
-					break
1868
-				}
1869
-			}
1870
-			if msglen < 0 {
1871
-				return ErrInvalidLengthMetrics
1872
-			}
1873
-			postIndex := iNdEx + msglen
1874
-			if postIndex > l {
1875
-				return io.ErrUnexpectedEOF
1876
-			}
1877
-			if m.CPU == nil {
1878
-				m.CPU = &CPUStat{}
1879
-			}
1880
-			if err := m.CPU.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
1881
-				return err
1882
-			}
1883
-			iNdEx = postIndex
1884
-		case 4:
1885
-			if wireType != 2 {
1886
-				return fmt.Errorf("proto: wrong wireType = %d for field Memory", wireType)
1887
-			}
1888
-			var msglen int
1889
-			for shift := uint(0); ; shift += 7 {
1890
-				if shift >= 64 {
1891
-					return ErrIntOverflowMetrics
1892
-				}
1893
-				if iNdEx >= l {
1894
-					return io.ErrUnexpectedEOF
1895
-				}
1896
-				b := dAtA[iNdEx]
1897
-				iNdEx++
1898
-				msglen |= (int(b) & 0x7F) << shift
1899
-				if b < 0x80 {
1900
-					break
1901
-				}
1902
-			}
1903
-			if msglen < 0 {
1904
-				return ErrInvalidLengthMetrics
1905
-			}
1906
-			postIndex := iNdEx + msglen
1907
-			if postIndex > l {
1908
-				return io.ErrUnexpectedEOF
1909
-			}
1910
-			if m.Memory == nil {
1911
-				m.Memory = &MemoryStat{}
1912
-			}
1913
-			if err := m.Memory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
1914
-				return err
1915
-			}
1916
-			iNdEx = postIndex
1917
-		case 5:
1918
-			if wireType != 2 {
1919
-				return fmt.Errorf("proto: wrong wireType = %d for field Blkio", wireType)
1920
-			}
1921
-			var msglen int
1922
-			for shift := uint(0); ; shift += 7 {
1923
-				if shift >= 64 {
1924
-					return ErrIntOverflowMetrics
1925
-				}
1926
-				if iNdEx >= l {
1927
-					return io.ErrUnexpectedEOF
1928
-				}
1929
-				b := dAtA[iNdEx]
1930
-				iNdEx++
1931
-				msglen |= (int(b) & 0x7F) << shift
1932
-				if b < 0x80 {
1933
-					break
1934
-				}
1935
-			}
1936
-			if msglen < 0 {
1937
-				return ErrInvalidLengthMetrics
1938
-			}
1939
-			postIndex := iNdEx + msglen
1940
-			if postIndex > l {
1941
-				return io.ErrUnexpectedEOF
1942
-			}
1943
-			if m.Blkio == nil {
1944
-				m.Blkio = &BlkIOStat{}
1945
-			}
1946
-			if err := m.Blkio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
1947
-				return err
1948
-			}
1949
-			iNdEx = postIndex
1950
-		case 6:
1951
-			if wireType != 2 {
1952
-				return fmt.Errorf("proto: wrong wireType = %d for field Rdma", wireType)
1953
-			}
1954
-			var msglen int
1955
-			for shift := uint(0); ; shift += 7 {
1956
-				if shift >= 64 {
1957
-					return ErrIntOverflowMetrics
1958
-				}
1959
-				if iNdEx >= l {
1960
-					return io.ErrUnexpectedEOF
1961
-				}
1962
-				b := dAtA[iNdEx]
1963
-				iNdEx++
1964
-				msglen |= (int(b) & 0x7F) << shift
1965
-				if b < 0x80 {
1966
-					break
1967
-				}
1968
-			}
1969
-			if msglen < 0 {
1970
-				return ErrInvalidLengthMetrics
1971
-			}
1972
-			postIndex := iNdEx + msglen
1973
-			if postIndex > l {
1974
-				return io.ErrUnexpectedEOF
1975
-			}
1976
-			if m.Rdma == nil {
1977
-				m.Rdma = &RdmaStat{}
1978
-			}
1979
-			if err := m.Rdma.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
1980
-				return err
1981
-			}
1982
-			iNdEx = postIndex
1983
-		case 7:
1984
-			if wireType != 2 {
1985
-				return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
1986
-			}
1987
-			var msglen int
1988
-			for shift := uint(0); ; shift += 7 {
1989
-				if shift >= 64 {
1990
-					return ErrIntOverflowMetrics
1991
-				}
1992
-				if iNdEx >= l {
1993
-					return io.ErrUnexpectedEOF
1994
-				}
1995
-				b := dAtA[iNdEx]
1996
-				iNdEx++
1997
-				msglen |= (int(b) & 0x7F) << shift
1998
-				if b < 0x80 {
1999
-					break
2000
-				}
2001
-			}
2002
-			if msglen < 0 {
2003
-				return ErrInvalidLengthMetrics
2004
-			}
2005
-			postIndex := iNdEx + msglen
2006
-			if postIndex > l {
2007
-				return io.ErrUnexpectedEOF
2008
-			}
2009
-			m.Network = append(m.Network, &NetworkStat{})
2010
-			if err := m.Network[len(m.Network)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2011
-				return err
2012
-			}
2013
-			iNdEx = postIndex
2014
-		default:
2015
-			iNdEx = preIndex
2016
-			skippy, err := skipMetrics(dAtA[iNdEx:])
2017
-			if err != nil {
2018
-				return err
2019
-			}
2020
-			if skippy < 0 {
2021
-				return ErrInvalidLengthMetrics
2022
-			}
2023
-			if (iNdEx + skippy) > l {
2024
-				return io.ErrUnexpectedEOF
2025
-			}
2026
-			iNdEx += skippy
2027
-		}
2028
-	}
2029
-
2030
-	if iNdEx > l {
2031
-		return io.ErrUnexpectedEOF
2032
-	}
2033
-	return nil
2034
-}
2035
-func (m *HugetlbStat) Unmarshal(dAtA []byte) error {
2036
-	l := len(dAtA)
2037
-	iNdEx := 0
2038
-	for iNdEx < l {
2039
-		preIndex := iNdEx
2040
-		var wire uint64
2041
-		for shift := uint(0); ; shift += 7 {
2042
-			if shift >= 64 {
2043
-				return ErrIntOverflowMetrics
2044
-			}
2045
-			if iNdEx >= l {
2046
-				return io.ErrUnexpectedEOF
2047
-			}
2048
-			b := dAtA[iNdEx]
2049
-			iNdEx++
2050
-			wire |= (uint64(b) & 0x7F) << shift
2051
-			if b < 0x80 {
2052
-				break
2053
-			}
2054
-		}
2055
-		fieldNum := int32(wire >> 3)
2056
-		wireType := int(wire & 0x7)
2057
-		if wireType == 4 {
2058
-			return fmt.Errorf("proto: HugetlbStat: wiretype end group for non-group")
2059
-		}
2060
-		if fieldNum <= 0 {
2061
-			return fmt.Errorf("proto: HugetlbStat: illegal tag %d (wire type %d)", fieldNum, wire)
2062
-		}
2063
-		switch fieldNum {
2064
-		case 1:
2065
-			if wireType != 0 {
2066
-				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
2067
-			}
2068
-			m.Usage = 0
2069
-			for shift := uint(0); ; shift += 7 {
2070
-				if shift >= 64 {
2071
-					return ErrIntOverflowMetrics
2072
-				}
2073
-				if iNdEx >= l {
2074
-					return io.ErrUnexpectedEOF
2075
-				}
2076
-				b := dAtA[iNdEx]
2077
-				iNdEx++
2078
-				m.Usage |= (uint64(b) & 0x7F) << shift
2079
-				if b < 0x80 {
2080
-					break
2081
-				}
2082
-			}
2083
-		case 2:
2084
-			if wireType != 0 {
2085
-				return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType)
2086
-			}
2087
-			m.Max = 0
2088
-			for shift := uint(0); ; shift += 7 {
2089
-				if shift >= 64 {
2090
-					return ErrIntOverflowMetrics
2091
-				}
2092
-				if iNdEx >= l {
2093
-					return io.ErrUnexpectedEOF
2094
-				}
2095
-				b := dAtA[iNdEx]
2096
-				iNdEx++
2097
-				m.Max |= (uint64(b) & 0x7F) << shift
2098
-				if b < 0x80 {
2099
-					break
2100
-				}
2101
-			}
2102
-		case 3:
2103
-			if wireType != 0 {
2104
-				return fmt.Errorf("proto: wrong wireType = %d for field Failcnt", wireType)
2105
-			}
2106
-			m.Failcnt = 0
2107
-			for shift := uint(0); ; shift += 7 {
2108
-				if shift >= 64 {
2109
-					return ErrIntOverflowMetrics
2110
-				}
2111
-				if iNdEx >= l {
2112
-					return io.ErrUnexpectedEOF
2113
-				}
2114
-				b := dAtA[iNdEx]
2115
-				iNdEx++
2116
-				m.Failcnt |= (uint64(b) & 0x7F) << shift
2117
-				if b < 0x80 {
2118
-					break
2119
-				}
2120
-			}
2121
-		case 4:
2122
-			if wireType != 2 {
2123
-				return fmt.Errorf("proto: wrong wireType = %d for field Pagesize", wireType)
2124
-			}
2125
-			var stringLen uint64
2126
-			for shift := uint(0); ; shift += 7 {
2127
-				if shift >= 64 {
2128
-					return ErrIntOverflowMetrics
2129
-				}
2130
-				if iNdEx >= l {
2131
-					return io.ErrUnexpectedEOF
2132
-				}
2133
-				b := dAtA[iNdEx]
2134
-				iNdEx++
2135
-				stringLen |= (uint64(b) & 0x7F) << shift
2136
-				if b < 0x80 {
2137
-					break
2138
-				}
2139
-			}
2140
-			intStringLen := int(stringLen)
2141
-			if intStringLen < 0 {
2142
-				return ErrInvalidLengthMetrics
2143
-			}
2144
-			postIndex := iNdEx + intStringLen
2145
-			if postIndex > l {
2146
-				return io.ErrUnexpectedEOF
2147
-			}
2148
-			m.Pagesize = string(dAtA[iNdEx:postIndex])
2149
-			iNdEx = postIndex
2150
-		default:
2151
-			iNdEx = preIndex
2152
-			skippy, err := skipMetrics(dAtA[iNdEx:])
2153
-			if err != nil {
2154
-				return err
2155
-			}
2156
-			if skippy < 0 {
2157
-				return ErrInvalidLengthMetrics
2158
-			}
2159
-			if (iNdEx + skippy) > l {
2160
-				return io.ErrUnexpectedEOF
2161
-			}
2162
-			iNdEx += skippy
2163
-		}
2164
-	}
2165
-
2166
-	if iNdEx > l {
2167
-		return io.ErrUnexpectedEOF
2168
-	}
2169
-	return nil
2170
-}
2171
-func (m *PidsStat) Unmarshal(dAtA []byte) error {
2172
-	l := len(dAtA)
2173
-	iNdEx := 0
2174
-	for iNdEx < l {
2175
-		preIndex := iNdEx
2176
-		var wire uint64
2177
-		for shift := uint(0); ; shift += 7 {
2178
-			if shift >= 64 {
2179
-				return ErrIntOverflowMetrics
2180
-			}
2181
-			if iNdEx >= l {
2182
-				return io.ErrUnexpectedEOF
2183
-			}
2184
-			b := dAtA[iNdEx]
2185
-			iNdEx++
2186
-			wire |= (uint64(b) & 0x7F) << shift
2187
-			if b < 0x80 {
2188
-				break
2189
-			}
2190
-		}
2191
-		fieldNum := int32(wire >> 3)
2192
-		wireType := int(wire & 0x7)
2193
-		if wireType == 4 {
2194
-			return fmt.Errorf("proto: PidsStat: wiretype end group for non-group")
2195
-		}
2196
-		if fieldNum <= 0 {
2197
-			return fmt.Errorf("proto: PidsStat: illegal tag %d (wire type %d)", fieldNum, wire)
2198
-		}
2199
-		switch fieldNum {
2200
-		case 1:
2201
-			if wireType != 0 {
2202
-				return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
2203
-			}
2204
-			m.Current = 0
2205
-			for shift := uint(0); ; shift += 7 {
2206
-				if shift >= 64 {
2207
-					return ErrIntOverflowMetrics
2208
-				}
2209
-				if iNdEx >= l {
2210
-					return io.ErrUnexpectedEOF
2211
-				}
2212
-				b := dAtA[iNdEx]
2213
-				iNdEx++
2214
-				m.Current |= (uint64(b) & 0x7F) << shift
2215
-				if b < 0x80 {
2216
-					break
2217
-				}
2218
-			}
2219
-		case 2:
2220
-			if wireType != 0 {
2221
-				return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
2222
-			}
2223
-			m.Limit = 0
2224
-			for shift := uint(0); ; shift += 7 {
2225
-				if shift >= 64 {
2226
-					return ErrIntOverflowMetrics
2227
-				}
2228
-				if iNdEx >= l {
2229
-					return io.ErrUnexpectedEOF
2230
-				}
2231
-				b := dAtA[iNdEx]
2232
-				iNdEx++
2233
-				m.Limit |= (uint64(b) & 0x7F) << shift
2234
-				if b < 0x80 {
2235
-					break
2236
-				}
2237
-			}
2238
-		default:
2239
-			iNdEx = preIndex
2240
-			skippy, err := skipMetrics(dAtA[iNdEx:])
2241
-			if err != nil {
2242
-				return err
2243
-			}
2244
-			if skippy < 0 {
2245
-				return ErrInvalidLengthMetrics
2246
-			}
2247
-			if (iNdEx + skippy) > l {
2248
-				return io.ErrUnexpectedEOF
2249
-			}
2250
-			iNdEx += skippy
2251
-		}
2252
-	}
2253
-
2254
-	if iNdEx > l {
2255
-		return io.ErrUnexpectedEOF
2256
-	}
2257
-	return nil
2258
-}
2259
-func (m *CPUStat) Unmarshal(dAtA []byte) error {
2260
-	l := len(dAtA)
2261
-	iNdEx := 0
2262
-	for iNdEx < l {
2263
-		preIndex := iNdEx
2264
-		var wire uint64
2265
-		for shift := uint(0); ; shift += 7 {
2266
-			if shift >= 64 {
2267
-				return ErrIntOverflowMetrics
2268
-			}
2269
-			if iNdEx >= l {
2270
-				return io.ErrUnexpectedEOF
2271
-			}
2272
-			b := dAtA[iNdEx]
2273
-			iNdEx++
2274
-			wire |= (uint64(b) & 0x7F) << shift
2275
-			if b < 0x80 {
2276
-				break
2277
-			}
2278
-		}
2279
-		fieldNum := int32(wire >> 3)
2280
-		wireType := int(wire & 0x7)
2281
-		if wireType == 4 {
2282
-			return fmt.Errorf("proto: CPUStat: wiretype end group for non-group")
2283
-		}
2284
-		if fieldNum <= 0 {
2285
-			return fmt.Errorf("proto: CPUStat: illegal tag %d (wire type %d)", fieldNum, wire)
2286
-		}
2287
-		switch fieldNum {
2288
-		case 1:
2289
-			if wireType != 2 {
2290
-				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
2291
-			}
2292
-			var msglen int
2293
-			for shift := uint(0); ; shift += 7 {
2294
-				if shift >= 64 {
2295
-					return ErrIntOverflowMetrics
2296
-				}
2297
-				if iNdEx >= l {
2298
-					return io.ErrUnexpectedEOF
2299
-				}
2300
-				b := dAtA[iNdEx]
2301
-				iNdEx++
2302
-				msglen |= (int(b) & 0x7F) << shift
2303
-				if b < 0x80 {
2304
-					break
2305
-				}
2306
-			}
2307
-			if msglen < 0 {
2308
-				return ErrInvalidLengthMetrics
2309
-			}
2310
-			postIndex := iNdEx + msglen
2311
-			if postIndex > l {
2312
-				return io.ErrUnexpectedEOF
2313
-			}
2314
-			if m.Usage == nil {
2315
-				m.Usage = &CPUUsage{}
2316
-			}
2317
-			if err := m.Usage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2318
-				return err
2319
-			}
2320
-			iNdEx = postIndex
2321
-		case 2:
2322
-			if wireType != 2 {
2323
-				return fmt.Errorf("proto: wrong wireType = %d for field Throttling", wireType)
2324
-			}
2325
-			var msglen int
2326
-			for shift := uint(0); ; shift += 7 {
2327
-				if shift >= 64 {
2328
-					return ErrIntOverflowMetrics
2329
-				}
2330
-				if iNdEx >= l {
2331
-					return io.ErrUnexpectedEOF
2332
-				}
2333
-				b := dAtA[iNdEx]
2334
-				iNdEx++
2335
-				msglen |= (int(b) & 0x7F) << shift
2336
-				if b < 0x80 {
2337
-					break
2338
-				}
2339
-			}
2340
-			if msglen < 0 {
2341
-				return ErrInvalidLengthMetrics
2342
-			}
2343
-			postIndex := iNdEx + msglen
2344
-			if postIndex > l {
2345
-				return io.ErrUnexpectedEOF
2346
-			}
2347
-			if m.Throttling == nil {
2348
-				m.Throttling = &Throttle{}
2349
-			}
2350
-			if err := m.Throttling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2351
-				return err
2352
-			}
2353
-			iNdEx = postIndex
2354
-		default:
2355
-			iNdEx = preIndex
2356
-			skippy, err := skipMetrics(dAtA[iNdEx:])
2357
-			if err != nil {
2358
-				return err
2359
-			}
2360
-			if skippy < 0 {
2361
-				return ErrInvalidLengthMetrics
2362
-			}
2363
-			if (iNdEx + skippy) > l {
2364
-				return io.ErrUnexpectedEOF
2365
-			}
2366
-			iNdEx += skippy
2367
-		}
2368
-	}
2369
-
2370
-	if iNdEx > l {
2371
-		return io.ErrUnexpectedEOF
2372
-	}
2373
-	return nil
2374
-}
2375
-func (m *CPUUsage) Unmarshal(dAtA []byte) error {
2376
-	l := len(dAtA)
2377
-	iNdEx := 0
2378
-	for iNdEx < l {
2379
-		preIndex := iNdEx
2380
-		var wire uint64
2381
-		for shift := uint(0); ; shift += 7 {
2382
-			if shift >= 64 {
2383
-				return ErrIntOverflowMetrics
2384
-			}
2385
-			if iNdEx >= l {
2386
-				return io.ErrUnexpectedEOF
2387
-			}
2388
-			b := dAtA[iNdEx]
2389
-			iNdEx++
2390
-			wire |= (uint64(b) & 0x7F) << shift
2391
-			if b < 0x80 {
2392
-				break
2393
-			}
2394
-		}
2395
-		fieldNum := int32(wire >> 3)
2396
-		wireType := int(wire & 0x7)
2397
-		if wireType == 4 {
2398
-			return fmt.Errorf("proto: CPUUsage: wiretype end group for non-group")
2399
-		}
2400
-		if fieldNum <= 0 {
2401
-			return fmt.Errorf("proto: CPUUsage: illegal tag %d (wire type %d)", fieldNum, wire)
2402
-		}
2403
-		switch fieldNum {
2404
-		case 1:
2405
-			if wireType != 0 {
2406
-				return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType)
2407
-			}
2408
-			m.Total = 0
2409
-			for shift := uint(0); ; shift += 7 {
2410
-				if shift >= 64 {
2411
-					return ErrIntOverflowMetrics
2412
-				}
2413
-				if iNdEx >= l {
2414
-					return io.ErrUnexpectedEOF
2415
-				}
2416
-				b := dAtA[iNdEx]
2417
-				iNdEx++
2418
-				m.Total |= (uint64(b) & 0x7F) << shift
2419
-				if b < 0x80 {
2420
-					break
2421
-				}
2422
-			}
2423
-		case 2:
2424
-			if wireType != 0 {
2425
-				return fmt.Errorf("proto: wrong wireType = %d for field Kernel", wireType)
2426
-			}
2427
-			m.Kernel = 0
2428
-			for shift := uint(0); ; shift += 7 {
2429
-				if shift >= 64 {
2430
-					return ErrIntOverflowMetrics
2431
-				}
2432
-				if iNdEx >= l {
2433
-					return io.ErrUnexpectedEOF
2434
-				}
2435
-				b := dAtA[iNdEx]
2436
-				iNdEx++
2437
-				m.Kernel |= (uint64(b) & 0x7F) << shift
2438
-				if b < 0x80 {
2439
-					break
2440
-				}
2441
-			}
2442
-		case 3:
2443
-			if wireType != 0 {
2444
-				return fmt.Errorf("proto: wrong wireType = %d for field User", wireType)
2445
-			}
2446
-			m.User = 0
2447
-			for shift := uint(0); ; shift += 7 {
2448
-				if shift >= 64 {
2449
-					return ErrIntOverflowMetrics
2450
-				}
2451
-				if iNdEx >= l {
2452
-					return io.ErrUnexpectedEOF
2453
-				}
2454
-				b := dAtA[iNdEx]
2455
-				iNdEx++
2456
-				m.User |= (uint64(b) & 0x7F) << shift
2457
-				if b < 0x80 {
2458
-					break
2459
-				}
2460
-			}
2461
-		case 4:
2462
-			if wireType == 0 {
2463
-				var v uint64
2464
-				for shift := uint(0); ; shift += 7 {
2465
-					if shift >= 64 {
2466
-						return ErrIntOverflowMetrics
2467
-					}
2468
-					if iNdEx >= l {
2469
-						return io.ErrUnexpectedEOF
2470
-					}
2471
-					b := dAtA[iNdEx]
2472
-					iNdEx++
2473
-					v |= (uint64(b) & 0x7F) << shift
2474
-					if b < 0x80 {
2475
-						break
2476
-					}
2477
-				}
2478
-				m.PerCPU = append(m.PerCPU, v)
2479
-			} else if wireType == 2 {
2480
-				var packedLen int
2481
-				for shift := uint(0); ; shift += 7 {
2482
-					if shift >= 64 {
2483
-						return ErrIntOverflowMetrics
2484
-					}
2485
-					if iNdEx >= l {
2486
-						return io.ErrUnexpectedEOF
2487
-					}
2488
-					b := dAtA[iNdEx]
2489
-					iNdEx++
2490
-					packedLen |= (int(b) & 0x7F) << shift
2491
-					if b < 0x80 {
2492
-						break
2493
-					}
2494
-				}
2495
-				if packedLen < 0 {
2496
-					return ErrInvalidLengthMetrics
2497
-				}
2498
-				postIndex := iNdEx + packedLen
2499
-				if postIndex > l {
2500
-					return io.ErrUnexpectedEOF
2501
-				}
2502
-				for iNdEx < postIndex {
2503
-					var v uint64
2504
-					for shift := uint(0); ; shift += 7 {
2505
-						if shift >= 64 {
2506
-							return ErrIntOverflowMetrics
2507
-						}
2508
-						if iNdEx >= l {
2509
-							return io.ErrUnexpectedEOF
2510
-						}
2511
-						b := dAtA[iNdEx]
2512
-						iNdEx++
2513
-						v |= (uint64(b) & 0x7F) << shift
2514
-						if b < 0x80 {
2515
-							break
2516
-						}
2517
-					}
2518
-					m.PerCPU = append(m.PerCPU, v)
2519
-				}
2520
-			} else {
2521
-				return fmt.Errorf("proto: wrong wireType = %d for field PerCPU", wireType)
2522
-			}
2523
-		default:
2524
-			iNdEx = preIndex
2525
-			skippy, err := skipMetrics(dAtA[iNdEx:])
2526
-			if err != nil {
2527
-				return err
2528
-			}
2529
-			if skippy < 0 {
2530
-				return ErrInvalidLengthMetrics
2531
-			}
2532
-			if (iNdEx + skippy) > l {
2533
-				return io.ErrUnexpectedEOF
2534
-			}
2535
-			iNdEx += skippy
2536
-		}
2537
-	}
2538
-
2539
-	if iNdEx > l {
2540
-		return io.ErrUnexpectedEOF
2541
-	}
2542
-	return nil
2543
-}
2544
-func (m *Throttle) Unmarshal(dAtA []byte) error {
2545
-	l := len(dAtA)
2546
-	iNdEx := 0
2547
-	for iNdEx < l {
2548
-		preIndex := iNdEx
2549
-		var wire uint64
2550
-		for shift := uint(0); ; shift += 7 {
2551
-			if shift >= 64 {
2552
-				return ErrIntOverflowMetrics
2553
-			}
2554
-			if iNdEx >= l {
2555
-				return io.ErrUnexpectedEOF
2556
-			}
2557
-			b := dAtA[iNdEx]
2558
-			iNdEx++
2559
-			wire |= (uint64(b) & 0x7F) << shift
2560
-			if b < 0x80 {
2561
-				break
2562
-			}
2563
-		}
2564
-		fieldNum := int32(wire >> 3)
2565
-		wireType := int(wire & 0x7)
2566
-		if wireType == 4 {
2567
-			return fmt.Errorf("proto: Throttle: wiretype end group for non-group")
2568
-		}
2569
-		if fieldNum <= 0 {
2570
-			return fmt.Errorf("proto: Throttle: illegal tag %d (wire type %d)", fieldNum, wire)
2571
-		}
2572
-		switch fieldNum {
2573
-		case 1:
2574
-			if wireType != 0 {
2575
-				return fmt.Errorf("proto: wrong wireType = %d for field Periods", wireType)
2576
-			}
2577
-			m.Periods = 0
2578
-			for shift := uint(0); ; shift += 7 {
2579
-				if shift >= 64 {
2580
-					return ErrIntOverflowMetrics
2581
-				}
2582
-				if iNdEx >= l {
2583
-					return io.ErrUnexpectedEOF
2584
-				}
2585
-				b := dAtA[iNdEx]
2586
-				iNdEx++
2587
-				m.Periods |= (uint64(b) & 0x7F) << shift
2588
-				if b < 0x80 {
2589
-					break
2590
-				}
2591
-			}
2592
-		case 2:
2593
-			if wireType != 0 {
2594
-				return fmt.Errorf("proto: wrong wireType = %d for field ThrottledPeriods", wireType)
2595
-			}
2596
-			m.ThrottledPeriods = 0
2597
-			for shift := uint(0); ; shift += 7 {
2598
-				if shift >= 64 {
2599
-					return ErrIntOverflowMetrics
2600
-				}
2601
-				if iNdEx >= l {
2602
-					return io.ErrUnexpectedEOF
2603
-				}
2604
-				b := dAtA[iNdEx]
2605
-				iNdEx++
2606
-				m.ThrottledPeriods |= (uint64(b) & 0x7F) << shift
2607
-				if b < 0x80 {
2608
-					break
2609
-				}
2610
-			}
2611
-		case 3:
2612
-			if wireType != 0 {
2613
-				return fmt.Errorf("proto: wrong wireType = %d for field ThrottledTime", wireType)
2614
-			}
2615
-			m.ThrottledTime = 0
2616
-			for shift := uint(0); ; shift += 7 {
2617
-				if shift >= 64 {
2618
-					return ErrIntOverflowMetrics
2619
-				}
2620
-				if iNdEx >= l {
2621
-					return io.ErrUnexpectedEOF
2622
-				}
2623
-				b := dAtA[iNdEx]
2624
-				iNdEx++
2625
-				m.ThrottledTime |= (uint64(b) & 0x7F) << shift
2626
-				if b < 0x80 {
2627
-					break
2628
-				}
2629
-			}
2630
-		default:
2631
-			iNdEx = preIndex
2632
-			skippy, err := skipMetrics(dAtA[iNdEx:])
2633
-			if err != nil {
2634
-				return err
2635
-			}
2636
-			if skippy < 0 {
2637
-				return ErrInvalidLengthMetrics
2638
-			}
2639
-			if (iNdEx + skippy) > l {
2640
-				return io.ErrUnexpectedEOF
2641
-			}
2642
-			iNdEx += skippy
2643
-		}
2644
-	}
2645
-
2646
-	if iNdEx > l {
2647
-		return io.ErrUnexpectedEOF
2648
-	}
2649
-	return nil
2650
-}
2651
-func (m *MemoryStat) Unmarshal(dAtA []byte) error {
2652
-	l := len(dAtA)
2653
-	iNdEx := 0
2654
-	for iNdEx < l {
2655
-		preIndex := iNdEx
2656
-		var wire uint64
2657
-		for shift := uint(0); ; shift += 7 {
2658
-			if shift >= 64 {
2659
-				return ErrIntOverflowMetrics
2660
-			}
2661
-			if iNdEx >= l {
2662
-				return io.ErrUnexpectedEOF
2663
-			}
2664
-			b := dAtA[iNdEx]
2665
-			iNdEx++
2666
-			wire |= (uint64(b) & 0x7F) << shift
2667
-			if b < 0x80 {
2668
-				break
2669
-			}
2670
-		}
2671
-		fieldNum := int32(wire >> 3)
2672
-		wireType := int(wire & 0x7)
2673
-		if wireType == 4 {
2674
-			return fmt.Errorf("proto: MemoryStat: wiretype end group for non-group")
2675
-		}
2676
-		if fieldNum <= 0 {
2677
-			return fmt.Errorf("proto: MemoryStat: illegal tag %d (wire type %d)", fieldNum, wire)
2678
-		}
2679
-		switch fieldNum {
2680
-		case 1:
2681
-			if wireType != 0 {
2682
-				return fmt.Errorf("proto: wrong wireType = %d for field Cache", wireType)
2683
-			}
2684
-			m.Cache = 0
2685
-			for shift := uint(0); ; shift += 7 {
2686
-				if shift >= 64 {
2687
-					return ErrIntOverflowMetrics
2688
-				}
2689
-				if iNdEx >= l {
2690
-					return io.ErrUnexpectedEOF
2691
-				}
2692
-				b := dAtA[iNdEx]
2693
-				iNdEx++
2694
-				m.Cache |= (uint64(b) & 0x7F) << shift
2695
-				if b < 0x80 {
2696
-					break
2697
-				}
2698
-			}
2699
-		case 2:
2700
-			if wireType != 0 {
2701
-				return fmt.Errorf("proto: wrong wireType = %d for field RSS", wireType)
2702
-			}
2703
-			m.RSS = 0
2704
-			for shift := uint(0); ; shift += 7 {
2705
-				if shift >= 64 {
2706
-					return ErrIntOverflowMetrics
2707
-				}
2708
-				if iNdEx >= l {
2709
-					return io.ErrUnexpectedEOF
2710
-				}
2711
-				b := dAtA[iNdEx]
2712
-				iNdEx++
2713
-				m.RSS |= (uint64(b) & 0x7F) << shift
2714
-				if b < 0x80 {
2715
-					break
2716
-				}
2717
-			}
2718
-		case 3:
2719
-			if wireType != 0 {
2720
-				return fmt.Errorf("proto: wrong wireType = %d for field RSSHuge", wireType)
2721
-			}
2722
-			m.RSSHuge = 0
2723
-			for shift := uint(0); ; shift += 7 {
2724
-				if shift >= 64 {
2725
-					return ErrIntOverflowMetrics
2726
-				}
2727
-				if iNdEx >= l {
2728
-					return io.ErrUnexpectedEOF
2729
-				}
2730
-				b := dAtA[iNdEx]
2731
-				iNdEx++
2732
-				m.RSSHuge |= (uint64(b) & 0x7F) << shift
2733
-				if b < 0x80 {
2734
-					break
2735
-				}
2736
-			}
2737
-		case 4:
2738
-			if wireType != 0 {
2739
-				return fmt.Errorf("proto: wrong wireType = %d for field MappedFile", wireType)
2740
-			}
2741
-			m.MappedFile = 0
2742
-			for shift := uint(0); ; shift += 7 {
2743
-				if shift >= 64 {
2744
-					return ErrIntOverflowMetrics
2745
-				}
2746
-				if iNdEx >= l {
2747
-					return io.ErrUnexpectedEOF
2748
-				}
2749
-				b := dAtA[iNdEx]
2750
-				iNdEx++
2751
-				m.MappedFile |= (uint64(b) & 0x7F) << shift
2752
-				if b < 0x80 {
2753
-					break
2754
-				}
2755
-			}
2756
-		case 5:
2757
-			if wireType != 0 {
2758
-				return fmt.Errorf("proto: wrong wireType = %d for field Dirty", wireType)
2759
-			}
2760
-			m.Dirty = 0
2761
-			for shift := uint(0); ; shift += 7 {
2762
-				if shift >= 64 {
2763
-					return ErrIntOverflowMetrics
2764
-				}
2765
-				if iNdEx >= l {
2766
-					return io.ErrUnexpectedEOF
2767
-				}
2768
-				b := dAtA[iNdEx]
2769
-				iNdEx++
2770
-				m.Dirty |= (uint64(b) & 0x7F) << shift
2771
-				if b < 0x80 {
2772
-					break
2773
-				}
2774
-			}
2775
-		case 6:
2776
-			if wireType != 0 {
2777
-				return fmt.Errorf("proto: wrong wireType = %d for field Writeback", wireType)
2778
-			}
2779
-			m.Writeback = 0
2780
-			for shift := uint(0); ; shift += 7 {
2781
-				if shift >= 64 {
2782
-					return ErrIntOverflowMetrics
2783
-				}
2784
-				if iNdEx >= l {
2785
-					return io.ErrUnexpectedEOF
2786
-				}
2787
-				b := dAtA[iNdEx]
2788
-				iNdEx++
2789
-				m.Writeback |= (uint64(b) & 0x7F) << shift
2790
-				if b < 0x80 {
2791
-					break
2792
-				}
2793
-			}
2794
-		case 7:
2795
-			if wireType != 0 {
2796
-				return fmt.Errorf("proto: wrong wireType = %d for field PgPgIn", wireType)
2797
-			}
2798
-			m.PgPgIn = 0
2799
-			for shift := uint(0); ; shift += 7 {
2800
-				if shift >= 64 {
2801
-					return ErrIntOverflowMetrics
2802
-				}
2803
-				if iNdEx >= l {
2804
-					return io.ErrUnexpectedEOF
2805
-				}
2806
-				b := dAtA[iNdEx]
2807
-				iNdEx++
2808
-				m.PgPgIn |= (uint64(b) & 0x7F) << shift
2809
-				if b < 0x80 {
2810
-					break
2811
-				}
2812
-			}
2813
-		case 8:
2814
-			if wireType != 0 {
2815
-				return fmt.Errorf("proto: wrong wireType = %d for field PgPgOut", wireType)
2816
-			}
2817
-			m.PgPgOut = 0
2818
-			for shift := uint(0); ; shift += 7 {
2819
-				if shift >= 64 {
2820
-					return ErrIntOverflowMetrics
2821
-				}
2822
-				if iNdEx >= l {
2823
-					return io.ErrUnexpectedEOF
2824
-				}
2825
-				b := dAtA[iNdEx]
2826
-				iNdEx++
2827
-				m.PgPgOut |= (uint64(b) & 0x7F) << shift
2828
-				if b < 0x80 {
2829
-					break
2830
-				}
2831
-			}
2832
-		case 9:
2833
-			if wireType != 0 {
2834
-				return fmt.Errorf("proto: wrong wireType = %d for field PgFault", wireType)
2835
-			}
2836
-			m.PgFault = 0
2837
-			for shift := uint(0); ; shift += 7 {
2838
-				if shift >= 64 {
2839
-					return ErrIntOverflowMetrics
2840
-				}
2841
-				if iNdEx >= l {
2842
-					return io.ErrUnexpectedEOF
2843
-				}
2844
-				b := dAtA[iNdEx]
2845
-				iNdEx++
2846
-				m.PgFault |= (uint64(b) & 0x7F) << shift
2847
-				if b < 0x80 {
2848
-					break
2849
-				}
2850
-			}
2851
-		case 10:
2852
-			if wireType != 0 {
2853
-				return fmt.Errorf("proto: wrong wireType = %d for field PgMajFault", wireType)
2854
-			}
2855
-			m.PgMajFault = 0
2856
-			for shift := uint(0); ; shift += 7 {
2857
-				if shift >= 64 {
2858
-					return ErrIntOverflowMetrics
2859
-				}
2860
-				if iNdEx >= l {
2861
-					return io.ErrUnexpectedEOF
2862
-				}
2863
-				b := dAtA[iNdEx]
2864
-				iNdEx++
2865
-				m.PgMajFault |= (uint64(b) & 0x7F) << shift
2866
-				if b < 0x80 {
2867
-					break
2868
-				}
2869
-			}
2870
-		case 11:
2871
-			if wireType != 0 {
2872
-				return fmt.Errorf("proto: wrong wireType = %d for field InactiveAnon", wireType)
2873
-			}
2874
-			m.InactiveAnon = 0
2875
-			for shift := uint(0); ; shift += 7 {
2876
-				if shift >= 64 {
2877
-					return ErrIntOverflowMetrics
2878
-				}
2879
-				if iNdEx >= l {
2880
-					return io.ErrUnexpectedEOF
2881
-				}
2882
-				b := dAtA[iNdEx]
2883
-				iNdEx++
2884
-				m.InactiveAnon |= (uint64(b) & 0x7F) << shift
2885
-				if b < 0x80 {
2886
-					break
2887
-				}
2888
-			}
2889
-		case 12:
2890
-			if wireType != 0 {
2891
-				return fmt.Errorf("proto: wrong wireType = %d for field ActiveAnon", wireType)
2892
-			}
2893
-			m.ActiveAnon = 0
2894
-			for shift := uint(0); ; shift += 7 {
2895
-				if shift >= 64 {
2896
-					return ErrIntOverflowMetrics
2897
-				}
2898
-				if iNdEx >= l {
2899
-					return io.ErrUnexpectedEOF
2900
-				}
2901
-				b := dAtA[iNdEx]
2902
-				iNdEx++
2903
-				m.ActiveAnon |= (uint64(b) & 0x7F) << shift
2904
-				if b < 0x80 {
2905
-					break
2906
-				}
2907
-			}
2908
-		case 13:
2909
-			if wireType != 0 {
2910
-				return fmt.Errorf("proto: wrong wireType = %d for field InactiveFile", wireType)
2911
-			}
2912
-			m.InactiveFile = 0
2913
-			for shift := uint(0); ; shift += 7 {
2914
-				if shift >= 64 {
2915
-					return ErrIntOverflowMetrics
2916
-				}
2917
-				if iNdEx >= l {
2918
-					return io.ErrUnexpectedEOF
2919
-				}
2920
-				b := dAtA[iNdEx]
2921
-				iNdEx++
2922
-				m.InactiveFile |= (uint64(b) & 0x7F) << shift
2923
-				if b < 0x80 {
2924
-					break
2925
-				}
2926
-			}
2927
-		case 14:
2928
-			if wireType != 0 {
2929
-				return fmt.Errorf("proto: wrong wireType = %d for field ActiveFile", wireType)
2930
-			}
2931
-			m.ActiveFile = 0
2932
-			for shift := uint(0); ; shift += 7 {
2933
-				if shift >= 64 {
2934
-					return ErrIntOverflowMetrics
2935
-				}
2936
-				if iNdEx >= l {
2937
-					return io.ErrUnexpectedEOF
2938
-				}
2939
-				b := dAtA[iNdEx]
2940
-				iNdEx++
2941
-				m.ActiveFile |= (uint64(b) & 0x7F) << shift
2942
-				if b < 0x80 {
2943
-					break
2944
-				}
2945
-			}
2946
-		case 15:
2947
-			if wireType != 0 {
2948
-				return fmt.Errorf("proto: wrong wireType = %d for field Unevictable", wireType)
2949
-			}
2950
-			m.Unevictable = 0
2951
-			for shift := uint(0); ; shift += 7 {
2952
-				if shift >= 64 {
2953
-					return ErrIntOverflowMetrics
2954
-				}
2955
-				if iNdEx >= l {
2956
-					return io.ErrUnexpectedEOF
2957
-				}
2958
-				b := dAtA[iNdEx]
2959
-				iNdEx++
2960
-				m.Unevictable |= (uint64(b) & 0x7F) << shift
2961
-				if b < 0x80 {
2962
-					break
2963
-				}
2964
-			}
2965
-		case 16:
2966
-			if wireType != 0 {
2967
-				return fmt.Errorf("proto: wrong wireType = %d for field HierarchicalMemoryLimit", wireType)
2968
-			}
2969
-			m.HierarchicalMemoryLimit = 0
2970
-			for shift := uint(0); ; shift += 7 {
2971
-				if shift >= 64 {
2972
-					return ErrIntOverflowMetrics
2973
-				}
2974
-				if iNdEx >= l {
2975
-					return io.ErrUnexpectedEOF
2976
-				}
2977
-				b := dAtA[iNdEx]
2978
-				iNdEx++
2979
-				m.HierarchicalMemoryLimit |= (uint64(b) & 0x7F) << shift
2980
-				if b < 0x80 {
2981
-					break
2982
-				}
2983
-			}
2984
-		case 17:
2985
-			if wireType != 0 {
2986
-				return fmt.Errorf("proto: wrong wireType = %d for field HierarchicalSwapLimit", wireType)
2987
-			}
2988
-			m.HierarchicalSwapLimit = 0
2989
-			for shift := uint(0); ; shift += 7 {
2990
-				if shift >= 64 {
2991
-					return ErrIntOverflowMetrics
2992
-				}
2993
-				if iNdEx >= l {
2994
-					return io.ErrUnexpectedEOF
2995
-				}
2996
-				b := dAtA[iNdEx]
2997
-				iNdEx++
2998
-				m.HierarchicalSwapLimit |= (uint64(b) & 0x7F) << shift
2999
-				if b < 0x80 {
3000
-					break
3001
-				}
3002
-			}
3003
-		case 18:
3004
-			if wireType != 0 {
3005
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalCache", wireType)
3006
-			}
3007
-			m.TotalCache = 0
3008
-			for shift := uint(0); ; shift += 7 {
3009
-				if shift >= 64 {
3010
-					return ErrIntOverflowMetrics
3011
-				}
3012
-				if iNdEx >= l {
3013
-					return io.ErrUnexpectedEOF
3014
-				}
3015
-				b := dAtA[iNdEx]
3016
-				iNdEx++
3017
-				m.TotalCache |= (uint64(b) & 0x7F) << shift
3018
-				if b < 0x80 {
3019
-					break
3020
-				}
3021
-			}
3022
-		case 19:
3023
-			if wireType != 0 {
3024
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalRSS", wireType)
3025
-			}
3026
-			m.TotalRSS = 0
3027
-			for shift := uint(0); ; shift += 7 {
3028
-				if shift >= 64 {
3029
-					return ErrIntOverflowMetrics
3030
-				}
3031
-				if iNdEx >= l {
3032
-					return io.ErrUnexpectedEOF
3033
-				}
3034
-				b := dAtA[iNdEx]
3035
-				iNdEx++
3036
-				m.TotalRSS |= (uint64(b) & 0x7F) << shift
3037
-				if b < 0x80 {
3038
-					break
3039
-				}
3040
-			}
3041
-		case 20:
3042
-			if wireType != 0 {
3043
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalRSSHuge", wireType)
3044
-			}
3045
-			m.TotalRSSHuge = 0
3046
-			for shift := uint(0); ; shift += 7 {
3047
-				if shift >= 64 {
3048
-					return ErrIntOverflowMetrics
3049
-				}
3050
-				if iNdEx >= l {
3051
-					return io.ErrUnexpectedEOF
3052
-				}
3053
-				b := dAtA[iNdEx]
3054
-				iNdEx++
3055
-				m.TotalRSSHuge |= (uint64(b) & 0x7F) << shift
3056
-				if b < 0x80 {
3057
-					break
3058
-				}
3059
-			}
3060
-		case 21:
3061
-			if wireType != 0 {
3062
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalMappedFile", wireType)
3063
-			}
3064
-			m.TotalMappedFile = 0
3065
-			for shift := uint(0); ; shift += 7 {
3066
-				if shift >= 64 {
3067
-					return ErrIntOverflowMetrics
3068
-				}
3069
-				if iNdEx >= l {
3070
-					return io.ErrUnexpectedEOF
3071
-				}
3072
-				b := dAtA[iNdEx]
3073
-				iNdEx++
3074
-				m.TotalMappedFile |= (uint64(b) & 0x7F) << shift
3075
-				if b < 0x80 {
3076
-					break
3077
-				}
3078
-			}
3079
-		case 22:
3080
-			if wireType != 0 {
3081
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalDirty", wireType)
3082
-			}
3083
-			m.TotalDirty = 0
3084
-			for shift := uint(0); ; shift += 7 {
3085
-				if shift >= 64 {
3086
-					return ErrIntOverflowMetrics
3087
-				}
3088
-				if iNdEx >= l {
3089
-					return io.ErrUnexpectedEOF
3090
-				}
3091
-				b := dAtA[iNdEx]
3092
-				iNdEx++
3093
-				m.TotalDirty |= (uint64(b) & 0x7F) << shift
3094
-				if b < 0x80 {
3095
-					break
3096
-				}
3097
-			}
3098
-		case 23:
3099
-			if wireType != 0 {
3100
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalWriteback", wireType)
3101
-			}
3102
-			m.TotalWriteback = 0
3103
-			for shift := uint(0); ; shift += 7 {
3104
-				if shift >= 64 {
3105
-					return ErrIntOverflowMetrics
3106
-				}
3107
-				if iNdEx >= l {
3108
-					return io.ErrUnexpectedEOF
3109
-				}
3110
-				b := dAtA[iNdEx]
3111
-				iNdEx++
3112
-				m.TotalWriteback |= (uint64(b) & 0x7F) << shift
3113
-				if b < 0x80 {
3114
-					break
3115
-				}
3116
-			}
3117
-		case 24:
3118
-			if wireType != 0 {
3119
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgPgIn", wireType)
3120
-			}
3121
-			m.TotalPgPgIn = 0
3122
-			for shift := uint(0); ; shift += 7 {
3123
-				if shift >= 64 {
3124
-					return ErrIntOverflowMetrics
3125
-				}
3126
-				if iNdEx >= l {
3127
-					return io.ErrUnexpectedEOF
3128
-				}
3129
-				b := dAtA[iNdEx]
3130
-				iNdEx++
3131
-				m.TotalPgPgIn |= (uint64(b) & 0x7F) << shift
3132
-				if b < 0x80 {
3133
-					break
3134
-				}
3135
-			}
3136
-		case 25:
3137
-			if wireType != 0 {
3138
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgPgOut", wireType)
3139
-			}
3140
-			m.TotalPgPgOut = 0
3141
-			for shift := uint(0); ; shift += 7 {
3142
-				if shift >= 64 {
3143
-					return ErrIntOverflowMetrics
3144
-				}
3145
-				if iNdEx >= l {
3146
-					return io.ErrUnexpectedEOF
3147
-				}
3148
-				b := dAtA[iNdEx]
3149
-				iNdEx++
3150
-				m.TotalPgPgOut |= (uint64(b) & 0x7F) << shift
3151
-				if b < 0x80 {
3152
-					break
3153
-				}
3154
-			}
3155
-		case 26:
3156
-			if wireType != 0 {
3157
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgFault", wireType)
3158
-			}
3159
-			m.TotalPgFault = 0
3160
-			for shift := uint(0); ; shift += 7 {
3161
-				if shift >= 64 {
3162
-					return ErrIntOverflowMetrics
3163
-				}
3164
-				if iNdEx >= l {
3165
-					return io.ErrUnexpectedEOF
3166
-				}
3167
-				b := dAtA[iNdEx]
3168
-				iNdEx++
3169
-				m.TotalPgFault |= (uint64(b) & 0x7F) << shift
3170
-				if b < 0x80 {
3171
-					break
3172
-				}
3173
-			}
3174
-		case 27:
3175
-			if wireType != 0 {
3176
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgMajFault", wireType)
3177
-			}
3178
-			m.TotalPgMajFault = 0
3179
-			for shift := uint(0); ; shift += 7 {
3180
-				if shift >= 64 {
3181
-					return ErrIntOverflowMetrics
3182
-				}
3183
-				if iNdEx >= l {
3184
-					return io.ErrUnexpectedEOF
3185
-				}
3186
-				b := dAtA[iNdEx]
3187
-				iNdEx++
3188
-				m.TotalPgMajFault |= (uint64(b) & 0x7F) << shift
3189
-				if b < 0x80 {
3190
-					break
3191
-				}
3192
-			}
3193
-		case 28:
3194
-			if wireType != 0 {
3195
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalInactiveAnon", wireType)
3196
-			}
3197
-			m.TotalInactiveAnon = 0
3198
-			for shift := uint(0); ; shift += 7 {
3199
-				if shift >= 64 {
3200
-					return ErrIntOverflowMetrics
3201
-				}
3202
-				if iNdEx >= l {
3203
-					return io.ErrUnexpectedEOF
3204
-				}
3205
-				b := dAtA[iNdEx]
3206
-				iNdEx++
3207
-				m.TotalInactiveAnon |= (uint64(b) & 0x7F) << shift
3208
-				if b < 0x80 {
3209
-					break
3210
-				}
3211
-			}
3212
-		case 29:
3213
-			if wireType != 0 {
3214
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalActiveAnon", wireType)
3215
-			}
3216
-			m.TotalActiveAnon = 0
3217
-			for shift := uint(0); ; shift += 7 {
3218
-				if shift >= 64 {
3219
-					return ErrIntOverflowMetrics
3220
-				}
3221
-				if iNdEx >= l {
3222
-					return io.ErrUnexpectedEOF
3223
-				}
3224
-				b := dAtA[iNdEx]
3225
-				iNdEx++
3226
-				m.TotalActiveAnon |= (uint64(b) & 0x7F) << shift
3227
-				if b < 0x80 {
3228
-					break
3229
-				}
3230
-			}
3231
-		case 30:
3232
-			if wireType != 0 {
3233
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalInactiveFile", wireType)
3234
-			}
3235
-			m.TotalInactiveFile = 0
3236
-			for shift := uint(0); ; shift += 7 {
3237
-				if shift >= 64 {
3238
-					return ErrIntOverflowMetrics
3239
-				}
3240
-				if iNdEx >= l {
3241
-					return io.ErrUnexpectedEOF
3242
-				}
3243
-				b := dAtA[iNdEx]
3244
-				iNdEx++
3245
-				m.TotalInactiveFile |= (uint64(b) & 0x7F) << shift
3246
-				if b < 0x80 {
3247
-					break
3248
-				}
3249
-			}
3250
-		case 31:
3251
-			if wireType != 0 {
3252
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalActiveFile", wireType)
3253
-			}
3254
-			m.TotalActiveFile = 0
3255
-			for shift := uint(0); ; shift += 7 {
3256
-				if shift >= 64 {
3257
-					return ErrIntOverflowMetrics
3258
-				}
3259
-				if iNdEx >= l {
3260
-					return io.ErrUnexpectedEOF
3261
-				}
3262
-				b := dAtA[iNdEx]
3263
-				iNdEx++
3264
-				m.TotalActiveFile |= (uint64(b) & 0x7F) << shift
3265
-				if b < 0x80 {
3266
-					break
3267
-				}
3268
-			}
3269
-		case 32:
3270
-			if wireType != 0 {
3271
-				return fmt.Errorf("proto: wrong wireType = %d for field TotalUnevictable", wireType)
3272
-			}
3273
-			m.TotalUnevictable = 0
3274
-			for shift := uint(0); ; shift += 7 {
3275
-				if shift >= 64 {
3276
-					return ErrIntOverflowMetrics
3277
-				}
3278
-				if iNdEx >= l {
3279
-					return io.ErrUnexpectedEOF
3280
-				}
3281
-				b := dAtA[iNdEx]
3282
-				iNdEx++
3283
-				m.TotalUnevictable |= (uint64(b) & 0x7F) << shift
3284
-				if b < 0x80 {
3285
-					break
3286
-				}
3287
-			}
3288
-		case 33:
3289
-			if wireType != 2 {
3290
-				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
3291
-			}
3292
-			var msglen int
3293
-			for shift := uint(0); ; shift += 7 {
3294
-				if shift >= 64 {
3295
-					return ErrIntOverflowMetrics
3296
-				}
3297
-				if iNdEx >= l {
3298
-					return io.ErrUnexpectedEOF
3299
-				}
3300
-				b := dAtA[iNdEx]
3301
-				iNdEx++
3302
-				msglen |= (int(b) & 0x7F) << shift
3303
-				if b < 0x80 {
3304
-					break
3305
-				}
3306
-			}
3307
-			if msglen < 0 {
3308
-				return ErrInvalidLengthMetrics
3309
-			}
3310
-			postIndex := iNdEx + msglen
3311
-			if postIndex > l {
3312
-				return io.ErrUnexpectedEOF
3313
-			}
3314
-			if m.Usage == nil {
3315
-				m.Usage = &MemoryEntry{}
3316
-			}
3317
-			if err := m.Usage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3318
-				return err
3319
-			}
3320
-			iNdEx = postIndex
3321
-		case 34:
3322
-			if wireType != 2 {
3323
-				return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType)
3324
-			}
3325
-			var msglen int
3326
-			for shift := uint(0); ; shift += 7 {
3327
-				if shift >= 64 {
3328
-					return ErrIntOverflowMetrics
3329
-				}
3330
-				if iNdEx >= l {
3331
-					return io.ErrUnexpectedEOF
3332
-				}
3333
-				b := dAtA[iNdEx]
3334
-				iNdEx++
3335
-				msglen |= (int(b) & 0x7F) << shift
3336
-				if b < 0x80 {
3337
-					break
3338
-				}
3339
-			}
3340
-			if msglen < 0 {
3341
-				return ErrInvalidLengthMetrics
3342
-			}
3343
-			postIndex := iNdEx + msglen
3344
-			if postIndex > l {
3345
-				return io.ErrUnexpectedEOF
3346
-			}
3347
-			if m.Swap == nil {
3348
-				m.Swap = &MemoryEntry{}
3349
-			}
3350
-			if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3351
-				return err
3352
-			}
3353
-			iNdEx = postIndex
3354
-		case 35:
3355
-			if wireType != 2 {
3356
-				return fmt.Errorf("proto: wrong wireType = %d for field Kernel", wireType)
3357
-			}
3358
-			var msglen int
3359
-			for shift := uint(0); ; shift += 7 {
3360
-				if shift >= 64 {
3361
-					return ErrIntOverflowMetrics
3362
-				}
3363
-				if iNdEx >= l {
3364
-					return io.ErrUnexpectedEOF
3365
-				}
3366
-				b := dAtA[iNdEx]
3367
-				iNdEx++
3368
-				msglen |= (int(b) & 0x7F) << shift
3369
-				if b < 0x80 {
3370
-					break
3371
-				}
3372
-			}
3373
-			if msglen < 0 {
3374
-				return ErrInvalidLengthMetrics
3375
-			}
3376
-			postIndex := iNdEx + msglen
3377
-			if postIndex > l {
3378
-				return io.ErrUnexpectedEOF
3379
-			}
3380
-			if m.Kernel == nil {
3381
-				m.Kernel = &MemoryEntry{}
3382
-			}
3383
-			if err := m.Kernel.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3384
-				return err
3385
-			}
3386
-			iNdEx = postIndex
3387
-		case 36:
3388
-			if wireType != 2 {
3389
-				return fmt.Errorf("proto: wrong wireType = %d for field KernelTCP", wireType)
3390
-			}
3391
-			var msglen int
3392
-			for shift := uint(0); ; shift += 7 {
3393
-				if shift >= 64 {
3394
-					return ErrIntOverflowMetrics
3395
-				}
3396
-				if iNdEx >= l {
3397
-					return io.ErrUnexpectedEOF
3398
-				}
3399
-				b := dAtA[iNdEx]
3400
-				iNdEx++
3401
-				msglen |= (int(b) & 0x7F) << shift
3402
-				if b < 0x80 {
3403
-					break
3404
-				}
3405
-			}
3406
-			if msglen < 0 {
3407
-				return ErrInvalidLengthMetrics
3408
-			}
3409
-			postIndex := iNdEx + msglen
3410
-			if postIndex > l {
3411
-				return io.ErrUnexpectedEOF
3412
-			}
3413
-			if m.KernelTCP == nil {
3414
-				m.KernelTCP = &MemoryEntry{}
3415
-			}
3416
-			if err := m.KernelTCP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3417
-				return err
3418
-			}
3419
-			iNdEx = postIndex
3420
-		default:
3421
-			iNdEx = preIndex
3422
-			skippy, err := skipMetrics(dAtA[iNdEx:])
3423
-			if err != nil {
3424
-				return err
3425
-			}
3426
-			if skippy < 0 {
3427
-				return ErrInvalidLengthMetrics
3428
-			}
3429
-			if (iNdEx + skippy) > l {
3430
-				return io.ErrUnexpectedEOF
3431
-			}
3432
-			iNdEx += skippy
3433
-		}
3434
-	}
3435
-
3436
-	if iNdEx > l {
3437
-		return io.ErrUnexpectedEOF
3438
-	}
3439
-	return nil
3440
-}
3441
-func (m *MemoryEntry) Unmarshal(dAtA []byte) error {
3442
-	l := len(dAtA)
3443
-	iNdEx := 0
3444
-	for iNdEx < l {
3445
-		preIndex := iNdEx
3446
-		var wire uint64
3447
-		for shift := uint(0); ; shift += 7 {
3448
-			if shift >= 64 {
3449
-				return ErrIntOverflowMetrics
3450
-			}
3451
-			if iNdEx >= l {
3452
-				return io.ErrUnexpectedEOF
3453
-			}
3454
-			b := dAtA[iNdEx]
3455
-			iNdEx++
3456
-			wire |= (uint64(b) & 0x7F) << shift
3457
-			if b < 0x80 {
3458
-				break
3459
-			}
3460
-		}
3461
-		fieldNum := int32(wire >> 3)
3462
-		wireType := int(wire & 0x7)
3463
-		if wireType == 4 {
3464
-			return fmt.Errorf("proto: MemoryEntry: wiretype end group for non-group")
3465
-		}
3466
-		if fieldNum <= 0 {
3467
-			return fmt.Errorf("proto: MemoryEntry: illegal tag %d (wire type %d)", fieldNum, wire)
3468
-		}
3469
-		switch fieldNum {
3470
-		case 1:
3471
-			if wireType != 0 {
3472
-				return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
3473
-			}
3474
-			m.Limit = 0
3475
-			for shift := uint(0); ; shift += 7 {
3476
-				if shift >= 64 {
3477
-					return ErrIntOverflowMetrics
3478
-				}
3479
-				if iNdEx >= l {
3480
-					return io.ErrUnexpectedEOF
3481
-				}
3482
-				b := dAtA[iNdEx]
3483
-				iNdEx++
3484
-				m.Limit |= (uint64(b) & 0x7F) << shift
3485
-				if b < 0x80 {
3486
-					break
3487
-				}
3488
-			}
3489
-		case 2:
3490
-			if wireType != 0 {
3491
-				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
3492
-			}
3493
-			m.Usage = 0
3494
-			for shift := uint(0); ; shift += 7 {
3495
-				if shift >= 64 {
3496
-					return ErrIntOverflowMetrics
3497
-				}
3498
-				if iNdEx >= l {
3499
-					return io.ErrUnexpectedEOF
3500
-				}
3501
-				b := dAtA[iNdEx]
3502
-				iNdEx++
3503
-				m.Usage |= (uint64(b) & 0x7F) << shift
3504
-				if b < 0x80 {
3505
-					break
3506
-				}
3507
-			}
3508
-		case 3:
3509
-			if wireType != 0 {
3510
-				return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType)
3511
-			}
3512
-			m.Max = 0
3513
-			for shift := uint(0); ; shift += 7 {
3514
-				if shift >= 64 {
3515
-					return ErrIntOverflowMetrics
3516
-				}
3517
-				if iNdEx >= l {
3518
-					return io.ErrUnexpectedEOF
3519
-				}
3520
-				b := dAtA[iNdEx]
3521
-				iNdEx++
3522
-				m.Max |= (uint64(b) & 0x7F) << shift
3523
-				if b < 0x80 {
3524
-					break
3525
-				}
3526
-			}
3527
-		case 4:
3528
-			if wireType != 0 {
3529
-				return fmt.Errorf("proto: wrong wireType = %d for field Failcnt", wireType)
3530
-			}
3531
-			m.Failcnt = 0
3532
-			for shift := uint(0); ; shift += 7 {
3533
-				if shift >= 64 {
3534
-					return ErrIntOverflowMetrics
3535
-				}
3536
-				if iNdEx >= l {
3537
-					return io.ErrUnexpectedEOF
3538
-				}
3539
-				b := dAtA[iNdEx]
3540
-				iNdEx++
3541
-				m.Failcnt |= (uint64(b) & 0x7F) << shift
3542
-				if b < 0x80 {
3543
-					break
3544
-				}
3545
-			}
3546
-		default:
3547
-			iNdEx = preIndex
3548
-			skippy, err := skipMetrics(dAtA[iNdEx:])
3549
-			if err != nil {
3550
-				return err
3551
-			}
3552
-			if skippy < 0 {
3553
-				return ErrInvalidLengthMetrics
3554
-			}
3555
-			if (iNdEx + skippy) > l {
3556
-				return io.ErrUnexpectedEOF
3557
-			}
3558
-			iNdEx += skippy
3559
-		}
3560
-	}
3561
-
3562
-	if iNdEx > l {
3563
-		return io.ErrUnexpectedEOF
3564
-	}
3565
-	return nil
3566
-}
3567
-func (m *BlkIOStat) Unmarshal(dAtA []byte) error {
3568
-	l := len(dAtA)
3569
-	iNdEx := 0
3570
-	for iNdEx < l {
3571
-		preIndex := iNdEx
3572
-		var wire uint64
3573
-		for shift := uint(0); ; shift += 7 {
3574
-			if shift >= 64 {
3575
-				return ErrIntOverflowMetrics
3576
-			}
3577
-			if iNdEx >= l {
3578
-				return io.ErrUnexpectedEOF
3579
-			}
3580
-			b := dAtA[iNdEx]
3581
-			iNdEx++
3582
-			wire |= (uint64(b) & 0x7F) << shift
3583
-			if b < 0x80 {
3584
-				break
3585
-			}
3586
-		}
3587
-		fieldNum := int32(wire >> 3)
3588
-		wireType := int(wire & 0x7)
3589
-		if wireType == 4 {
3590
-			return fmt.Errorf("proto: BlkIOStat: wiretype end group for non-group")
3591
-		}
3592
-		if fieldNum <= 0 {
3593
-			return fmt.Errorf("proto: BlkIOStat: illegal tag %d (wire type %d)", fieldNum, wire)
3594
-		}
3595
-		switch fieldNum {
3596
-		case 1:
3597
-			if wireType != 2 {
3598
-				return fmt.Errorf("proto: wrong wireType = %d for field IoServiceBytesRecursive", wireType)
3599
-			}
3600
-			var msglen int
3601
-			for shift := uint(0); ; shift += 7 {
3602
-				if shift >= 64 {
3603
-					return ErrIntOverflowMetrics
3604
-				}
3605
-				if iNdEx >= l {
3606
-					return io.ErrUnexpectedEOF
3607
-				}
3608
-				b := dAtA[iNdEx]
3609
-				iNdEx++
3610
-				msglen |= (int(b) & 0x7F) << shift
3611
-				if b < 0x80 {
3612
-					break
3613
-				}
3614
-			}
3615
-			if msglen < 0 {
3616
-				return ErrInvalidLengthMetrics
3617
-			}
3618
-			postIndex := iNdEx + msglen
3619
-			if postIndex > l {
3620
-				return io.ErrUnexpectedEOF
3621
-			}
3622
-			m.IoServiceBytesRecursive = append(m.IoServiceBytesRecursive, &BlkIOEntry{})
3623
-			if err := m.IoServiceBytesRecursive[len(m.IoServiceBytesRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3624
-				return err
3625
-			}
3626
-			iNdEx = postIndex
3627
-		case 2:
3628
-			if wireType != 2 {
3629
-				return fmt.Errorf("proto: wrong wireType = %d for field IoServicedRecursive", wireType)
3630
-			}
3631
-			var msglen int
3632
-			for shift := uint(0); ; shift += 7 {
3633
-				if shift >= 64 {
3634
-					return ErrIntOverflowMetrics
3635
-				}
3636
-				if iNdEx >= l {
3637
-					return io.ErrUnexpectedEOF
3638
-				}
3639
-				b := dAtA[iNdEx]
3640
-				iNdEx++
3641
-				msglen |= (int(b) & 0x7F) << shift
3642
-				if b < 0x80 {
3643
-					break
3644
-				}
3645
-			}
3646
-			if msglen < 0 {
3647
-				return ErrInvalidLengthMetrics
3648
-			}
3649
-			postIndex := iNdEx + msglen
3650
-			if postIndex > l {
3651
-				return io.ErrUnexpectedEOF
3652
-			}
3653
-			m.IoServicedRecursive = append(m.IoServicedRecursive, &BlkIOEntry{})
3654
-			if err := m.IoServicedRecursive[len(m.IoServicedRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3655
-				return err
3656
-			}
3657
-			iNdEx = postIndex
3658
-		case 3:
3659
-			if wireType != 2 {
3660
-				return fmt.Errorf("proto: wrong wireType = %d for field IoQueuedRecursive", wireType)
3661
-			}
3662
-			var msglen int
3663
-			for shift := uint(0); ; shift += 7 {
3664
-				if shift >= 64 {
3665
-					return ErrIntOverflowMetrics
3666
-				}
3667
-				if iNdEx >= l {
3668
-					return io.ErrUnexpectedEOF
3669
-				}
3670
-				b := dAtA[iNdEx]
3671
-				iNdEx++
3672
-				msglen |= (int(b) & 0x7F) << shift
3673
-				if b < 0x80 {
3674
-					break
3675
-				}
3676
-			}
3677
-			if msglen < 0 {
3678
-				return ErrInvalidLengthMetrics
3679
-			}
3680
-			postIndex := iNdEx + msglen
3681
-			if postIndex > l {
3682
-				return io.ErrUnexpectedEOF
3683
-			}
3684
-			m.IoQueuedRecursive = append(m.IoQueuedRecursive, &BlkIOEntry{})
3685
-			if err := m.IoQueuedRecursive[len(m.IoQueuedRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3686
-				return err
3687
-			}
3688
-			iNdEx = postIndex
3689
-		case 4:
3690
-			if wireType != 2 {
3691
-				return fmt.Errorf("proto: wrong wireType = %d for field IoServiceTimeRecursive", wireType)
3692
-			}
3693
-			var msglen int
3694
-			for shift := uint(0); ; shift += 7 {
3695
-				if shift >= 64 {
3696
-					return ErrIntOverflowMetrics
3697
-				}
3698
-				if iNdEx >= l {
3699
-					return io.ErrUnexpectedEOF
3700
-				}
3701
-				b := dAtA[iNdEx]
3702
-				iNdEx++
3703
-				msglen |= (int(b) & 0x7F) << shift
3704
-				if b < 0x80 {
3705
-					break
3706
-				}
3707
-			}
3708
-			if msglen < 0 {
3709
-				return ErrInvalidLengthMetrics
3710
-			}
3711
-			postIndex := iNdEx + msglen
3712
-			if postIndex > l {
3713
-				return io.ErrUnexpectedEOF
3714
-			}
3715
-			m.IoServiceTimeRecursive = append(m.IoServiceTimeRecursive, &BlkIOEntry{})
3716
-			if err := m.IoServiceTimeRecursive[len(m.IoServiceTimeRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3717
-				return err
3718
-			}
3719
-			iNdEx = postIndex
3720
-		case 5:
3721
-			if wireType != 2 {
3722
-				return fmt.Errorf("proto: wrong wireType = %d for field IoWaitTimeRecursive", wireType)
3723
-			}
3724
-			var msglen int
3725
-			for shift := uint(0); ; shift += 7 {
3726
-				if shift >= 64 {
3727
-					return ErrIntOverflowMetrics
3728
-				}
3729
-				if iNdEx >= l {
3730
-					return io.ErrUnexpectedEOF
3731
-				}
3732
-				b := dAtA[iNdEx]
3733
-				iNdEx++
3734
-				msglen |= (int(b) & 0x7F) << shift
3735
-				if b < 0x80 {
3736
-					break
3737
-				}
3738
-			}
3739
-			if msglen < 0 {
3740
-				return ErrInvalidLengthMetrics
3741
-			}
3742
-			postIndex := iNdEx + msglen
3743
-			if postIndex > l {
3744
-				return io.ErrUnexpectedEOF
3745
-			}
3746
-			m.IoWaitTimeRecursive = append(m.IoWaitTimeRecursive, &BlkIOEntry{})
3747
-			if err := m.IoWaitTimeRecursive[len(m.IoWaitTimeRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3748
-				return err
3749
-			}
3750
-			iNdEx = postIndex
3751
-		case 6:
3752
-			if wireType != 2 {
3753
-				return fmt.Errorf("proto: wrong wireType = %d for field IoMergedRecursive", wireType)
3754
-			}
3755
-			var msglen int
3756
-			for shift := uint(0); ; shift += 7 {
3757
-				if shift >= 64 {
3758
-					return ErrIntOverflowMetrics
3759
-				}
3760
-				if iNdEx >= l {
3761
-					return io.ErrUnexpectedEOF
3762
-				}
3763
-				b := dAtA[iNdEx]
3764
-				iNdEx++
3765
-				msglen |= (int(b) & 0x7F) << shift
3766
-				if b < 0x80 {
3767
-					break
3768
-				}
3769
-			}
3770
-			if msglen < 0 {
3771
-				return ErrInvalidLengthMetrics
3772
-			}
3773
-			postIndex := iNdEx + msglen
3774
-			if postIndex > l {
3775
-				return io.ErrUnexpectedEOF
3776
-			}
3777
-			m.IoMergedRecursive = append(m.IoMergedRecursive, &BlkIOEntry{})
3778
-			if err := m.IoMergedRecursive[len(m.IoMergedRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3779
-				return err
3780
-			}
3781
-			iNdEx = postIndex
3782
-		case 7:
3783
-			if wireType != 2 {
3784
-				return fmt.Errorf("proto: wrong wireType = %d for field IoTimeRecursive", wireType)
3785
-			}
3786
-			var msglen int
3787
-			for shift := uint(0); ; shift += 7 {
3788
-				if shift >= 64 {
3789
-					return ErrIntOverflowMetrics
3790
-				}
3791
-				if iNdEx >= l {
3792
-					return io.ErrUnexpectedEOF
3793
-				}
3794
-				b := dAtA[iNdEx]
3795
-				iNdEx++
3796
-				msglen |= (int(b) & 0x7F) << shift
3797
-				if b < 0x80 {
3798
-					break
3799
-				}
3800
-			}
3801
-			if msglen < 0 {
3802
-				return ErrInvalidLengthMetrics
3803
-			}
3804
-			postIndex := iNdEx + msglen
3805
-			if postIndex > l {
3806
-				return io.ErrUnexpectedEOF
3807
-			}
3808
-			m.IoTimeRecursive = append(m.IoTimeRecursive, &BlkIOEntry{})
3809
-			if err := m.IoTimeRecursive[len(m.IoTimeRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3810
-				return err
3811
-			}
3812
-			iNdEx = postIndex
3813
-		case 8:
3814
-			if wireType != 2 {
3815
-				return fmt.Errorf("proto: wrong wireType = %d for field SectorsRecursive", wireType)
3816
-			}
3817
-			var msglen int
3818
-			for shift := uint(0); ; shift += 7 {
3819
-				if shift >= 64 {
3820
-					return ErrIntOverflowMetrics
3821
-				}
3822
-				if iNdEx >= l {
3823
-					return io.ErrUnexpectedEOF
3824
-				}
3825
-				b := dAtA[iNdEx]
3826
-				iNdEx++
3827
-				msglen |= (int(b) & 0x7F) << shift
3828
-				if b < 0x80 {
3829
-					break
3830
-				}
3831
-			}
3832
-			if msglen < 0 {
3833
-				return ErrInvalidLengthMetrics
3834
-			}
3835
-			postIndex := iNdEx + msglen
3836
-			if postIndex > l {
3837
-				return io.ErrUnexpectedEOF
3838
-			}
3839
-			m.SectorsRecursive = append(m.SectorsRecursive, &BlkIOEntry{})
3840
-			if err := m.SectorsRecursive[len(m.SectorsRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3841
-				return err
3842
-			}
3843
-			iNdEx = postIndex
3844
-		default:
3845
-			iNdEx = preIndex
3846
-			skippy, err := skipMetrics(dAtA[iNdEx:])
3847
-			if err != nil {
3848
-				return err
3849
-			}
3850
-			if skippy < 0 {
3851
-				return ErrInvalidLengthMetrics
3852
-			}
3853
-			if (iNdEx + skippy) > l {
3854
-				return io.ErrUnexpectedEOF
3855
-			}
3856
-			iNdEx += skippy
3857
-		}
3858
-	}
3859
-
3860
-	if iNdEx > l {
3861
-		return io.ErrUnexpectedEOF
3862
-	}
3863
-	return nil
3864
-}
3865
-func (m *BlkIOEntry) Unmarshal(dAtA []byte) error {
3866
-	l := len(dAtA)
3867
-	iNdEx := 0
3868
-	for iNdEx < l {
3869
-		preIndex := iNdEx
3870
-		var wire uint64
3871
-		for shift := uint(0); ; shift += 7 {
3872
-			if shift >= 64 {
3873
-				return ErrIntOverflowMetrics
3874
-			}
3875
-			if iNdEx >= l {
3876
-				return io.ErrUnexpectedEOF
3877
-			}
3878
-			b := dAtA[iNdEx]
3879
-			iNdEx++
3880
-			wire |= (uint64(b) & 0x7F) << shift
3881
-			if b < 0x80 {
3882
-				break
3883
-			}
3884
-		}
3885
-		fieldNum := int32(wire >> 3)
3886
-		wireType := int(wire & 0x7)
3887
-		if wireType == 4 {
3888
-			return fmt.Errorf("proto: BlkIOEntry: wiretype end group for non-group")
3889
-		}
3890
-		if fieldNum <= 0 {
3891
-			return fmt.Errorf("proto: BlkIOEntry: illegal tag %d (wire type %d)", fieldNum, wire)
3892
-		}
3893
-		switch fieldNum {
3894
-		case 1:
3895
-			if wireType != 2 {
3896
-				return fmt.Errorf("proto: wrong wireType = %d for field Op", wireType)
3897
-			}
3898
-			var stringLen uint64
3899
-			for shift := uint(0); ; shift += 7 {
3900
-				if shift >= 64 {
3901
-					return ErrIntOverflowMetrics
3902
-				}
3903
-				if iNdEx >= l {
3904
-					return io.ErrUnexpectedEOF
3905
-				}
3906
-				b := dAtA[iNdEx]
3907
-				iNdEx++
3908
-				stringLen |= (uint64(b) & 0x7F) << shift
3909
-				if b < 0x80 {
3910
-					break
3911
-				}
3912
-			}
3913
-			intStringLen := int(stringLen)
3914
-			if intStringLen < 0 {
3915
-				return ErrInvalidLengthMetrics
3916
-			}
3917
-			postIndex := iNdEx + intStringLen
3918
-			if postIndex > l {
3919
-				return io.ErrUnexpectedEOF
3920
-			}
3921
-			m.Op = string(dAtA[iNdEx:postIndex])
3922
-			iNdEx = postIndex
3923
-		case 2:
3924
-			if wireType != 2 {
3925
-				return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
3926
-			}
3927
-			var stringLen uint64
3928
-			for shift := uint(0); ; shift += 7 {
3929
-				if shift >= 64 {
3930
-					return ErrIntOverflowMetrics
3931
-				}
3932
-				if iNdEx >= l {
3933
-					return io.ErrUnexpectedEOF
3934
-				}
3935
-				b := dAtA[iNdEx]
3936
-				iNdEx++
3937
-				stringLen |= (uint64(b) & 0x7F) << shift
3938
-				if b < 0x80 {
3939
-					break
3940
-				}
3941
-			}
3942
-			intStringLen := int(stringLen)
3943
-			if intStringLen < 0 {
3944
-				return ErrInvalidLengthMetrics
3945
-			}
3946
-			postIndex := iNdEx + intStringLen
3947
-			if postIndex > l {
3948
-				return io.ErrUnexpectedEOF
3949
-			}
3950
-			m.Device = string(dAtA[iNdEx:postIndex])
3951
-			iNdEx = postIndex
3952
-		case 3:
3953
-			if wireType != 0 {
3954
-				return fmt.Errorf("proto: wrong wireType = %d for field Major", wireType)
3955
-			}
3956
-			m.Major = 0
3957
-			for shift := uint(0); ; shift += 7 {
3958
-				if shift >= 64 {
3959
-					return ErrIntOverflowMetrics
3960
-				}
3961
-				if iNdEx >= l {
3962
-					return io.ErrUnexpectedEOF
3963
-				}
3964
-				b := dAtA[iNdEx]
3965
-				iNdEx++
3966
-				m.Major |= (uint64(b) & 0x7F) << shift
3967
-				if b < 0x80 {
3968
-					break
3969
-				}
3970
-			}
3971
-		case 4:
3972
-			if wireType != 0 {
3973
-				return fmt.Errorf("proto: wrong wireType = %d for field Minor", wireType)
3974
-			}
3975
-			m.Minor = 0
3976
-			for shift := uint(0); ; shift += 7 {
3977
-				if shift >= 64 {
3978
-					return ErrIntOverflowMetrics
3979
-				}
3980
-				if iNdEx >= l {
3981
-					return io.ErrUnexpectedEOF
3982
-				}
3983
-				b := dAtA[iNdEx]
3984
-				iNdEx++
3985
-				m.Minor |= (uint64(b) & 0x7F) << shift
3986
-				if b < 0x80 {
3987
-					break
3988
-				}
3989
-			}
3990
-		case 5:
3991
-			if wireType != 0 {
3992
-				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
3993
-			}
3994
-			m.Value = 0
3995
-			for shift := uint(0); ; shift += 7 {
3996
-				if shift >= 64 {
3997
-					return ErrIntOverflowMetrics
3998
-				}
3999
-				if iNdEx >= l {
4000
-					return io.ErrUnexpectedEOF
4001
-				}
4002
-				b := dAtA[iNdEx]
4003
-				iNdEx++
4004
-				m.Value |= (uint64(b) & 0x7F) << shift
4005
-				if b < 0x80 {
4006
-					break
4007
-				}
4008
-			}
4009
-		default:
4010
-			iNdEx = preIndex
4011
-			skippy, err := skipMetrics(dAtA[iNdEx:])
4012
-			if err != nil {
4013
-				return err
4014
-			}
4015
-			if skippy < 0 {
4016
-				return ErrInvalidLengthMetrics
4017
-			}
4018
-			if (iNdEx + skippy) > l {
4019
-				return io.ErrUnexpectedEOF
4020
-			}
4021
-			iNdEx += skippy
4022
-		}
4023
-	}
4024
-
4025
-	if iNdEx > l {
4026
-		return io.ErrUnexpectedEOF
4027
-	}
4028
-	return nil
4029
-}
4030
-func (m *RdmaStat) Unmarshal(dAtA []byte) error {
4031
-	l := len(dAtA)
4032
-	iNdEx := 0
4033
-	for iNdEx < l {
4034
-		preIndex := iNdEx
4035
-		var wire uint64
4036
-		for shift := uint(0); ; shift += 7 {
4037
-			if shift >= 64 {
4038
-				return ErrIntOverflowMetrics
4039
-			}
4040
-			if iNdEx >= l {
4041
-				return io.ErrUnexpectedEOF
4042
-			}
4043
-			b := dAtA[iNdEx]
4044
-			iNdEx++
4045
-			wire |= (uint64(b) & 0x7F) << shift
4046
-			if b < 0x80 {
4047
-				break
4048
-			}
4049
-		}
4050
-		fieldNum := int32(wire >> 3)
4051
-		wireType := int(wire & 0x7)
4052
-		if wireType == 4 {
4053
-			return fmt.Errorf("proto: RdmaStat: wiretype end group for non-group")
4054
-		}
4055
-		if fieldNum <= 0 {
4056
-			return fmt.Errorf("proto: RdmaStat: illegal tag %d (wire type %d)", fieldNum, wire)
4057
-		}
4058
-		switch fieldNum {
4059
-		case 1:
4060
-			if wireType != 2 {
4061
-				return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
4062
-			}
4063
-			var msglen int
4064
-			for shift := uint(0); ; shift += 7 {
4065
-				if shift >= 64 {
4066
-					return ErrIntOverflowMetrics
4067
-				}
4068
-				if iNdEx >= l {
4069
-					return io.ErrUnexpectedEOF
4070
-				}
4071
-				b := dAtA[iNdEx]
4072
-				iNdEx++
4073
-				msglen |= (int(b) & 0x7F) << shift
4074
-				if b < 0x80 {
4075
-					break
4076
-				}
4077
-			}
4078
-			if msglen < 0 {
4079
-				return ErrInvalidLengthMetrics
4080
-			}
4081
-			postIndex := iNdEx + msglen
4082
-			if postIndex > l {
4083
-				return io.ErrUnexpectedEOF
4084
-			}
4085
-			m.Current = append(m.Current, &RdmaEntry{})
4086
-			if err := m.Current[len(m.Current)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4087
-				return err
4088
-			}
4089
-			iNdEx = postIndex
4090
-		case 2:
4091
-			if wireType != 2 {
4092
-				return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
4093
-			}
4094
-			var msglen int
4095
-			for shift := uint(0); ; shift += 7 {
4096
-				if shift >= 64 {
4097
-					return ErrIntOverflowMetrics
4098
-				}
4099
-				if iNdEx >= l {
4100
-					return io.ErrUnexpectedEOF
4101
-				}
4102
-				b := dAtA[iNdEx]
4103
-				iNdEx++
4104
-				msglen |= (int(b) & 0x7F) << shift
4105
-				if b < 0x80 {
4106
-					break
4107
-				}
4108
-			}
4109
-			if msglen < 0 {
4110
-				return ErrInvalidLengthMetrics
4111
-			}
4112
-			postIndex := iNdEx + msglen
4113
-			if postIndex > l {
4114
-				return io.ErrUnexpectedEOF
4115
-			}
4116
-			m.Limit = append(m.Limit, &RdmaEntry{})
4117
-			if err := m.Limit[len(m.Limit)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4118
-				return err
4119
-			}
4120
-			iNdEx = postIndex
4121
-		default:
4122
-			iNdEx = preIndex
4123
-			skippy, err := skipMetrics(dAtA[iNdEx:])
4124
-			if err != nil {
4125
-				return err
4126
-			}
4127
-			if skippy < 0 {
4128
-				return ErrInvalidLengthMetrics
4129
-			}
4130
-			if (iNdEx + skippy) > l {
4131
-				return io.ErrUnexpectedEOF
4132
-			}
4133
-			iNdEx += skippy
4134
-		}
4135
-	}
4136
-
4137
-	if iNdEx > l {
4138
-		return io.ErrUnexpectedEOF
4139
-	}
4140
-	return nil
4141
-}
4142
-func (m *RdmaEntry) Unmarshal(dAtA []byte) error {
4143
-	l := len(dAtA)
4144
-	iNdEx := 0
4145
-	for iNdEx < l {
4146
-		preIndex := iNdEx
4147
-		var wire uint64
4148
-		for shift := uint(0); ; shift += 7 {
4149
-			if shift >= 64 {
4150
-				return ErrIntOverflowMetrics
4151
-			}
4152
-			if iNdEx >= l {
4153
-				return io.ErrUnexpectedEOF
4154
-			}
4155
-			b := dAtA[iNdEx]
4156
-			iNdEx++
4157
-			wire |= (uint64(b) & 0x7F) << shift
4158
-			if b < 0x80 {
4159
-				break
4160
-			}
4161
-		}
4162
-		fieldNum := int32(wire >> 3)
4163
-		wireType := int(wire & 0x7)
4164
-		if wireType == 4 {
4165
-			return fmt.Errorf("proto: RdmaEntry: wiretype end group for non-group")
4166
-		}
4167
-		if fieldNum <= 0 {
4168
-			return fmt.Errorf("proto: RdmaEntry: illegal tag %d (wire type %d)", fieldNum, wire)
4169
-		}
4170
-		switch fieldNum {
4171
-		case 1:
4172
-			if wireType != 2 {
4173
-				return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
4174
-			}
4175
-			var stringLen uint64
4176
-			for shift := uint(0); ; shift += 7 {
4177
-				if shift >= 64 {
4178
-					return ErrIntOverflowMetrics
4179
-				}
4180
-				if iNdEx >= l {
4181
-					return io.ErrUnexpectedEOF
4182
-				}
4183
-				b := dAtA[iNdEx]
4184
-				iNdEx++
4185
-				stringLen |= (uint64(b) & 0x7F) << shift
4186
-				if b < 0x80 {
4187
-					break
4188
-				}
4189
-			}
4190
-			intStringLen := int(stringLen)
4191
-			if intStringLen < 0 {
4192
-				return ErrInvalidLengthMetrics
4193
-			}
4194
-			postIndex := iNdEx + intStringLen
4195
-			if postIndex > l {
4196
-				return io.ErrUnexpectedEOF
4197
-			}
4198
-			m.Device = string(dAtA[iNdEx:postIndex])
4199
-			iNdEx = postIndex
4200
-		case 2:
4201
-			if wireType != 0 {
4202
-				return fmt.Errorf("proto: wrong wireType = %d for field HcaHandles", wireType)
4203
-			}
4204
-			m.HcaHandles = 0
4205
-			for shift := uint(0); ; shift += 7 {
4206
-				if shift >= 64 {
4207
-					return ErrIntOverflowMetrics
4208
-				}
4209
-				if iNdEx >= l {
4210
-					return io.ErrUnexpectedEOF
4211
-				}
4212
-				b := dAtA[iNdEx]
4213
-				iNdEx++
4214
-				m.HcaHandles |= (uint32(b) & 0x7F) << shift
4215
-				if b < 0x80 {
4216
-					break
4217
-				}
4218
-			}
4219
-		case 3:
4220
-			if wireType != 0 {
4221
-				return fmt.Errorf("proto: wrong wireType = %d for field HcaObjects", wireType)
4222
-			}
4223
-			m.HcaObjects = 0
4224
-			for shift := uint(0); ; shift += 7 {
4225
-				if shift >= 64 {
4226
-					return ErrIntOverflowMetrics
4227
-				}
4228
-				if iNdEx >= l {
4229
-					return io.ErrUnexpectedEOF
4230
-				}
4231
-				b := dAtA[iNdEx]
4232
-				iNdEx++
4233
-				m.HcaObjects |= (uint32(b) & 0x7F) << shift
4234
-				if b < 0x80 {
4235
-					break
4236
-				}
4237
-			}
4238
-		default:
4239
-			iNdEx = preIndex
4240
-			skippy, err := skipMetrics(dAtA[iNdEx:])
4241
-			if err != nil {
4242
-				return err
4243
-			}
4244
-			if skippy < 0 {
4245
-				return ErrInvalidLengthMetrics
4246
-			}
4247
-			if (iNdEx + skippy) > l {
4248
-				return io.ErrUnexpectedEOF
4249
-			}
4250
-			iNdEx += skippy
4251
-		}
4252
-	}
4253
-
4254
-	if iNdEx > l {
4255
-		return io.ErrUnexpectedEOF
4256
-	}
4257
-	return nil
4258
-}
4259
-func (m *NetworkStat) Unmarshal(dAtA []byte) error {
4260
-	l := len(dAtA)
4261
-	iNdEx := 0
4262
-	for iNdEx < l {
4263
-		preIndex := iNdEx
4264
-		var wire uint64
4265
-		for shift := uint(0); ; shift += 7 {
4266
-			if shift >= 64 {
4267
-				return ErrIntOverflowMetrics
4268
-			}
4269
-			if iNdEx >= l {
4270
-				return io.ErrUnexpectedEOF
4271
-			}
4272
-			b := dAtA[iNdEx]
4273
-			iNdEx++
4274
-			wire |= (uint64(b) & 0x7F) << shift
4275
-			if b < 0x80 {
4276
-				break
4277
-			}
4278
-		}
4279
-		fieldNum := int32(wire >> 3)
4280
-		wireType := int(wire & 0x7)
4281
-		if wireType == 4 {
4282
-			return fmt.Errorf("proto: NetworkStat: wiretype end group for non-group")
4283
-		}
4284
-		if fieldNum <= 0 {
4285
-			return fmt.Errorf("proto: NetworkStat: illegal tag %d (wire type %d)", fieldNum, wire)
4286
-		}
4287
-		switch fieldNum {
4288
-		case 1:
4289
-			if wireType != 2 {
4290
-				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
4291
-			}
4292
-			var stringLen uint64
4293
-			for shift := uint(0); ; shift += 7 {
4294
-				if shift >= 64 {
4295
-					return ErrIntOverflowMetrics
4296
-				}
4297
-				if iNdEx >= l {
4298
-					return io.ErrUnexpectedEOF
4299
-				}
4300
-				b := dAtA[iNdEx]
4301
-				iNdEx++
4302
-				stringLen |= (uint64(b) & 0x7F) << shift
4303
-				if b < 0x80 {
4304
-					break
4305
-				}
4306
-			}
4307
-			intStringLen := int(stringLen)
4308
-			if intStringLen < 0 {
4309
-				return ErrInvalidLengthMetrics
4310
-			}
4311
-			postIndex := iNdEx + intStringLen
4312
-			if postIndex > l {
4313
-				return io.ErrUnexpectedEOF
4314
-			}
4315
-			m.Name = string(dAtA[iNdEx:postIndex])
4316
-			iNdEx = postIndex
4317
-		case 2:
4318
-			if wireType != 0 {
4319
-				return fmt.Errorf("proto: wrong wireType = %d for field RxBytes", wireType)
4320
-			}
4321
-			m.RxBytes = 0
4322
-			for shift := uint(0); ; shift += 7 {
4323
-				if shift >= 64 {
4324
-					return ErrIntOverflowMetrics
4325
-				}
4326
-				if iNdEx >= l {
4327
-					return io.ErrUnexpectedEOF
4328
-				}
4329
-				b := dAtA[iNdEx]
4330
-				iNdEx++
4331
-				m.RxBytes |= (uint64(b) & 0x7F) << shift
4332
-				if b < 0x80 {
4333
-					break
4334
-				}
4335
-			}
4336
-		case 3:
4337
-			if wireType != 0 {
4338
-				return fmt.Errorf("proto: wrong wireType = %d for field RxPackets", wireType)
4339
-			}
4340
-			m.RxPackets = 0
4341
-			for shift := uint(0); ; shift += 7 {
4342
-				if shift >= 64 {
4343
-					return ErrIntOverflowMetrics
4344
-				}
4345
-				if iNdEx >= l {
4346
-					return io.ErrUnexpectedEOF
4347
-				}
4348
-				b := dAtA[iNdEx]
4349
-				iNdEx++
4350
-				m.RxPackets |= (uint64(b) & 0x7F) << shift
4351
-				if b < 0x80 {
4352
-					break
4353
-				}
4354
-			}
4355
-		case 4:
4356
-			if wireType != 0 {
4357
-				return fmt.Errorf("proto: wrong wireType = %d for field RxErrors", wireType)
4358
-			}
4359
-			m.RxErrors = 0
4360
-			for shift := uint(0); ; shift += 7 {
4361
-				if shift >= 64 {
4362
-					return ErrIntOverflowMetrics
4363
-				}
4364
-				if iNdEx >= l {
4365
-					return io.ErrUnexpectedEOF
4366
-				}
4367
-				b := dAtA[iNdEx]
4368
-				iNdEx++
4369
-				m.RxErrors |= (uint64(b) & 0x7F) << shift
4370
-				if b < 0x80 {
4371
-					break
4372
-				}
4373
-			}
4374
-		case 5:
4375
-			if wireType != 0 {
4376
-				return fmt.Errorf("proto: wrong wireType = %d for field RxDropped", wireType)
4377
-			}
4378
-			m.RxDropped = 0
4379
-			for shift := uint(0); ; shift += 7 {
4380
-				if shift >= 64 {
4381
-					return ErrIntOverflowMetrics
4382
-				}
4383
-				if iNdEx >= l {
4384
-					return io.ErrUnexpectedEOF
4385
-				}
4386
-				b := dAtA[iNdEx]
4387
-				iNdEx++
4388
-				m.RxDropped |= (uint64(b) & 0x7F) << shift
4389
-				if b < 0x80 {
4390
-					break
4391
-				}
4392
-			}
4393
-		case 6:
4394
-			if wireType != 0 {
4395
-				return fmt.Errorf("proto: wrong wireType = %d for field TxBytes", wireType)
4396
-			}
4397
-			m.TxBytes = 0
4398
-			for shift := uint(0); ; shift += 7 {
4399
-				if shift >= 64 {
4400
-					return ErrIntOverflowMetrics
4401
-				}
4402
-				if iNdEx >= l {
4403
-					return io.ErrUnexpectedEOF
4404
-				}
4405
-				b := dAtA[iNdEx]
4406
-				iNdEx++
4407
-				m.TxBytes |= (uint64(b) & 0x7F) << shift
4408
-				if b < 0x80 {
4409
-					break
4410
-				}
4411
-			}
4412
-		case 7:
4413
-			if wireType != 0 {
4414
-				return fmt.Errorf("proto: wrong wireType = %d for field TxPackets", wireType)
4415
-			}
4416
-			m.TxPackets = 0
4417
-			for shift := uint(0); ; shift += 7 {
4418
-				if shift >= 64 {
4419
-					return ErrIntOverflowMetrics
4420
-				}
4421
-				if iNdEx >= l {
4422
-					return io.ErrUnexpectedEOF
4423
-				}
4424
-				b := dAtA[iNdEx]
4425
-				iNdEx++
4426
-				m.TxPackets |= (uint64(b) & 0x7F) << shift
4427
-				if b < 0x80 {
4428
-					break
4429
-				}
4430
-			}
4431
-		case 8:
4432
-			if wireType != 0 {
4433
-				return fmt.Errorf("proto: wrong wireType = %d for field TxErrors", wireType)
4434
-			}
4435
-			m.TxErrors = 0
4436
-			for shift := uint(0); ; shift += 7 {
4437
-				if shift >= 64 {
4438
-					return ErrIntOverflowMetrics
4439
-				}
4440
-				if iNdEx >= l {
4441
-					return io.ErrUnexpectedEOF
4442
-				}
4443
-				b := dAtA[iNdEx]
4444
-				iNdEx++
4445
-				m.TxErrors |= (uint64(b) & 0x7F) << shift
4446
-				if b < 0x80 {
4447
-					break
4448
-				}
4449
-			}
4450
-		case 9:
4451
-			if wireType != 0 {
4452
-				return fmt.Errorf("proto: wrong wireType = %d for field TxDropped", wireType)
4453
-			}
4454
-			m.TxDropped = 0
4455
-			for shift := uint(0); ; shift += 7 {
4456
-				if shift >= 64 {
4457
-					return ErrIntOverflowMetrics
4458
-				}
4459
-				if iNdEx >= l {
4460
-					return io.ErrUnexpectedEOF
4461
-				}
4462
-				b := dAtA[iNdEx]
4463
-				iNdEx++
4464
-				m.TxDropped |= (uint64(b) & 0x7F) << shift
4465
-				if b < 0x80 {
4466
-					break
4467
-				}
4468
-			}
4469
-		default:
4470
-			iNdEx = preIndex
4471
-			skippy, err := skipMetrics(dAtA[iNdEx:])
4472
-			if err != nil {
4473
-				return err
4474
-			}
4475
-			if skippy < 0 {
4476
-				return ErrInvalidLengthMetrics
4477
-			}
4478
-			if (iNdEx + skippy) > l {
4479
-				return io.ErrUnexpectedEOF
4480
-			}
4481
-			iNdEx += skippy
4482
-		}
4483
-	}
4484
-
4485
-	if iNdEx > l {
4486
-		return io.ErrUnexpectedEOF
4487
-	}
4488
-	return nil
4489
-}
4490
-func skipMetrics(dAtA []byte) (n int, err error) {
4491
-	l := len(dAtA)
4492
-	iNdEx := 0
4493
-	for iNdEx < l {
4494
-		var wire uint64
4495
-		for shift := uint(0); ; shift += 7 {
4496
-			if shift >= 64 {
4497
-				return 0, ErrIntOverflowMetrics
4498
-			}
4499
-			if iNdEx >= l {
4500
-				return 0, io.ErrUnexpectedEOF
4501
-			}
4502
-			b := dAtA[iNdEx]
4503
-			iNdEx++
4504
-			wire |= (uint64(b) & 0x7F) << shift
4505
-			if b < 0x80 {
4506
-				break
4507
-			}
4508
-		}
4509
-		wireType := int(wire & 0x7)
4510
-		switch wireType {
4511
-		case 0:
4512
-			for shift := uint(0); ; shift += 7 {
4513
-				if shift >= 64 {
4514
-					return 0, ErrIntOverflowMetrics
4515
-				}
4516
-				if iNdEx >= l {
4517
-					return 0, io.ErrUnexpectedEOF
4518
-				}
4519
-				iNdEx++
4520
-				if dAtA[iNdEx-1] < 0x80 {
4521
-					break
4522
-				}
4523
-			}
4524
-			return iNdEx, nil
4525
-		case 1:
4526
-			iNdEx += 8
4527
-			return iNdEx, nil
4528
-		case 2:
4529
-			var length int
4530
-			for shift := uint(0); ; shift += 7 {
4531
-				if shift >= 64 {
4532
-					return 0, ErrIntOverflowMetrics
4533
-				}
4534
-				if iNdEx >= l {
4535
-					return 0, io.ErrUnexpectedEOF
4536
-				}
4537
-				b := dAtA[iNdEx]
4538
-				iNdEx++
4539
-				length |= (int(b) & 0x7F) << shift
4540
-				if b < 0x80 {
4541
-					break
4542
-				}
4543
-			}
4544
-			iNdEx += length
4545
-			if length < 0 {
4546
-				return 0, ErrInvalidLengthMetrics
4547
-			}
4548
-			return iNdEx, nil
4549
-		case 3:
4550
-			for {
4551
-				var innerWire uint64
4552
-				var start int = iNdEx
4553
-				for shift := uint(0); ; shift += 7 {
4554
-					if shift >= 64 {
4555
-						return 0, ErrIntOverflowMetrics
4556
-					}
4557
-					if iNdEx >= l {
4558
-						return 0, io.ErrUnexpectedEOF
4559
-					}
4560
-					b := dAtA[iNdEx]
4561
-					iNdEx++
4562
-					innerWire |= (uint64(b) & 0x7F) << shift
4563
-					if b < 0x80 {
4564
-						break
4565
-					}
4566
-				}
4567
-				innerWireType := int(innerWire & 0x7)
4568
-				if innerWireType == 4 {
4569
-					break
4570
-				}
4571
-				next, err := skipMetrics(dAtA[start:])
4572
-				if err != nil {
4573
-					return 0, err
4574
-				}
4575
-				iNdEx = start + next
4576
-			}
4577
-			return iNdEx, nil
4578
-		case 4:
4579
-			return iNdEx, nil
4580
-		case 5:
4581
-			iNdEx += 4
4582
-			return iNdEx, nil
4583
-		default:
4584
-			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
4585
-		}
4586
-	}
4587
-	panic("unreachable")
4588
-}
4589
-
4590
-var (
4591
-	ErrInvalidLengthMetrics = fmt.Errorf("proto: negative length found during unmarshaling")
4592
-	ErrIntOverflowMetrics   = fmt.Errorf("proto: integer overflow")
4593
-)
4594
-
4595
-func init() { proto.RegisterFile("github.com/containerd/cgroups/metrics.proto", fileDescriptorMetrics) }
4596
-
4597
-var fileDescriptorMetrics = []byte{
4598
-	// 1549 bytes of a gzipped FileDescriptorProto
4599
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x57, 0x4d, 0x6f, 0x1b, 0xb7,
4600
-	0x16, 0x8d, 0x2c, 0xd9, 0xd2, 0x5c, 0xd9, 0x8e, 0x4d, 0x27, 0xce, 0xd8, 0x49, 0x2c, 0x47, 0xb6,
4601
-	0xdf, 0xf3, 0x7b, 0x06, 0x64, 0xbc, 0x3c, 0x20, 0x68, 0xd2, 0x04, 0x45, 0xe4, 0x24, 0x48, 0xd0,
4602
-	0xba, 0x51, 0x46, 0x36, 0xd2, 0xae, 0x06, 0xd4, 0x88, 0x19, 0xd1, 0x96, 0x86, 0x13, 0x0e, 0xc7,
4603
-	0x96, 0xbb, 0xea, 0xa2, 0x40, 0x57, 0xfd, 0x33, 0xfd, 0x15, 0x59, 0x76, 0x53, 0xa0, 0xdd, 0x18,
4604
-	0x8d, 0x7e, 0x49, 0x41, 0x72, 0x3e, 0xa8, 0x24, 0x8e, 0xab, 0xdd, 0x90, 0x3c, 0xe7, 0xdc, 0xcb,
4605
-	0x3b, 0x87, 0xc3, 0x3b, 0xb0, 0xe3, 0x53, 0xd1, 0x8b, 0x3b, 0x0d, 0x8f, 0x0d, 0x76, 0x3d, 0x16,
4606
-	0x08, 0x4c, 0x03, 0xc2, 0xbb, 0xbb, 0x9e, 0xcf, 0x59, 0x1c, 0x46, 0xbb, 0x03, 0x22, 0x38, 0xf5,
4607
-	0xa2, 0x46, 0xc8, 0x99, 0x60, 0xc8, 0xa6, 0xac, 0x91, 0x83, 0x1a, 0x09, 0xa8, 0x71, 0xf2, 0xbf,
4608
-	0xd5, 0x6b, 0x3e, 0xf3, 0x99, 0x02, 0xed, 0xca, 0x27, 0x8d, 0xaf, 0xff, 0x5a, 0x84, 0xf2, 0xbe,
4609
-	0x56, 0x40, 0x5f, 0x41, 0xb9, 0x17, 0xfb, 0x44, 0xf4, 0x3b, 0x76, 0x61, 0xbd, 0xb8, 0x5d, 0xbd,
4610
-	0xbb, 0xd5, 0xb8, 0x48, 0xad, 0xf1, 0x5c, 0x03, 0xdb, 0x02, 0x0b, 0x27, 0x65, 0xa1, 0x7b, 0x50,
4611
-	0x0a, 0x69, 0x37, 0xb2, 0xa7, 0xd6, 0x0b, 0xdb, 0xd5, 0xbb, 0xf5, 0x8b, 0xd9, 0x2d, 0xda, 0x8d,
4612
-	0x14, 0x55, 0xe1, 0xd1, 0x43, 0x28, 0x7a, 0x61, 0x6c, 0x17, 0x15, 0xed, 0xce, 0xc5, 0xb4, 0xbd,
4613
-	0xd6, 0xa1, 0x64, 0x35, 0xcb, 0xa3, 0xf3, 0x5a, 0x71, 0xaf, 0x75, 0xe8, 0x48, 0x1a, 0x7a, 0x08,
4614
-	0x33, 0x03, 0x32, 0x60, 0xfc, 0xcc, 0x2e, 0x29, 0x81, 0xcd, 0x8b, 0x05, 0xf6, 0x15, 0x4e, 0x45,
4615
-	0x4e, 0x38, 0xe8, 0x3e, 0x4c, 0x77, 0xfa, 0xc7, 0x94, 0xd9, 0xd3, 0x8a, 0xbc, 0x71, 0x31, 0xb9,
4616
-	0xd9, 0x3f, 0x7e, 0xf1, 0x52, 0x71, 0x35, 0x43, 0x6e, 0x97, 0x77, 0x07, 0xd8, 0x9e, 0xb9, 0x6c,
4617
-	0xbb, 0x4e, 0x77, 0x80, 0xf5, 0x76, 0x25, 0x5e, 0xd6, 0x39, 0x20, 0xe2, 0x94, 0xf1, 0x63, 0xbb,
4618
-	0x7c, 0x59, 0x9d, 0xbf, 0xd5, 0x40, 0x5d, 0xe7, 0x84, 0x55, 0x3f, 0x86, 0xaa, 0x51, 0x7f, 0x74,
4619
-	0x0d, 0xa6, 0xe3, 0x08, 0xfb, 0xc4, 0x2e, 0xac, 0x17, 0xb6, 0x4b, 0x8e, 0x1e, 0xa0, 0x05, 0x28,
4620
-	0x0e, 0xf0, 0x50, 0xbd, 0x8b, 0x92, 0x23, 0x1f, 0x91, 0x0d, 0xe5, 0x37, 0x98, 0xf6, 0xbd, 0x40,
4621
-	0xa8, 0x52, 0x97, 0x9c, 0x74, 0x88, 0x56, 0xa1, 0x12, 0x62, 0x9f, 0x44, 0xf4, 0x07, 0xa2, 0x8a,
4622
-	0x68, 0x39, 0xd9, 0xb8, 0xfe, 0x00, 0x2a, 0xe9, 0xeb, 0x92, 0x0a, 0x5e, 0xcc, 0x39, 0x09, 0x44,
4623
-	0x12, 0x2b, 0x1d, 0xca, 0x1c, 0xfa, 0x74, 0x40, 0x45, 0x12, 0x4f, 0x0f, 0xea, 0x3f, 0x17, 0xa0,
4624
-	0x9c, 0xbc, 0x34, 0xf4, 0x85, 0x99, 0xe5, 0x67, 0xcb, 0xb5, 0xd7, 0x3a, 0x3c, 0x94, 0xc8, 0x74,
4625
-	0x27, 0x4d, 0x00, 0xd1, 0xe3, 0x4c, 0x88, 0x3e, 0x0d, 0xfc, 0xcb, 0xcd, 0x75, 0xa0, 0xb1, 0xc4,
4626
-	0x31, 0x58, 0xf5, 0xb7, 0x50, 0x49, 0x65, 0x65, 0xae, 0x82, 0x09, 0xdc, 0x4f, 0xeb, 0xa5, 0x06,
4627
-	0x68, 0x19, 0x66, 0x8e, 0x09, 0x0f, 0x48, 0x3f, 0xd9, 0x42, 0x32, 0x42, 0x08, 0x4a, 0x71, 0x44,
4628
-	0x78, 0x52, 0x32, 0xf5, 0x8c, 0x36, 0xa0, 0x1c, 0x12, 0xee, 0x4a, 0xd3, 0x96, 0xd6, 0x8b, 0xdb,
4629
-	0xa5, 0x26, 0x8c, 0xce, 0x6b, 0x33, 0x2d, 0xc2, 0xa5, 0x29, 0x67, 0x42, 0xc2, 0xf7, 0xc2, 0xb8,
4630
-	0x3e, 0x84, 0x4a, 0x9a, 0x8a, 0x2c, 0x5c, 0x48, 0x38, 0x65, 0xdd, 0x28, 0x2d, 0x5c, 0x32, 0x44,
4631
-	0x3b, 0xb0, 0x98, 0xa4, 0x49, 0xba, 0x6e, 0x8a, 0xd1, 0x19, 0x2c, 0x64, 0x0b, 0xad, 0x04, 0xbc,
4632
-	0x05, 0xf3, 0x39, 0x58, 0xd0, 0x01, 0x49, 0xb2, 0x9a, 0xcb, 0x66, 0x0f, 0xe8, 0x80, 0xd4, 0xff,
4633
-	0xac, 0x02, 0xe4, 0x56, 0x97, 0xfb, 0xf5, 0xb0, 0xd7, 0xcb, 0xfc, 0xa1, 0x06, 0x68, 0x05, 0x8a,
4634
-	0x3c, 0x4a, 0x42, 0xe9, 0x13, 0xe5, 0xb4, 0xdb, 0x8e, 0x9c, 0x43, 0xff, 0x82, 0x0a, 0x8f, 0x22,
4635
-	0x57, 0x1e, 0x6b, 0x1d, 0xa0, 0x59, 0x1d, 0x9d, 0xd7, 0xca, 0x4e, 0xbb, 0x2d, 0x6d, 0xe7, 0x94,
4636
-	0x79, 0x14, 0xc9, 0x07, 0x54, 0x83, 0xea, 0x00, 0x87, 0x21, 0xe9, 0xba, 0x6f, 0x68, 0x5f, 0x3b,
4637
-	0xa7, 0xe4, 0x80, 0x9e, 0x7a, 0x46, 0xfb, 0xaa, 0xd2, 0x5d, 0xca, 0xc5, 0x99, 0x3a, 0x5c, 0x25,
4638
-	0x47, 0x0f, 0xd0, 0x2d, 0xb0, 0x4e, 0x39, 0x15, 0xa4, 0x83, 0xbd, 0x63, 0x75, 0x78, 0x4a, 0x4e,
4639
-	0x3e, 0x81, 0x6c, 0xa8, 0x84, 0xbe, 0x1b, 0xfa, 0x2e, 0x0d, 0xec, 0xb2, 0x7e, 0x13, 0xa1, 0xdf,
4640
-	0xf2, 0x5f, 0x04, 0x68, 0x15, 0x2c, 0xbd, 0xc2, 0x62, 0x61, 0x57, 0x92, 0x32, 0xfa, 0x2d, 0xff,
4641
-	0x65, 0x2c, 0xd0, 0x8a, 0x62, 0xbd, 0xc1, 0x71, 0x5f, 0xd8, 0x56, 0xba, 0xf4, 0x4c, 0x0e, 0xd1,
4642
-	0x3a, 0xcc, 0x86, 0xbe, 0x3b, 0xc0, 0x47, 0xc9, 0x32, 0xe8, 0x34, 0x43, 0x7f, 0x1f, 0x1f, 0x69,
4643
-	0xc4, 0x06, 0xcc, 0xd1, 0x00, 0x7b, 0x82, 0x9e, 0x10, 0x17, 0x07, 0x2c, 0xb0, 0xab, 0x0a, 0x32,
4644
-	0x9b, 0x4e, 0x3e, 0x0e, 0x58, 0x20, 0x37, 0x6b, 0x42, 0x66, 0xb5, 0x8a, 0x01, 0x30, 0x55, 0x54,
4645
-	0x3d, 0xe6, 0xc6, 0x55, 0x54, 0x45, 0x72, 0x15, 0x05, 0x99, 0x37, 0x55, 0x14, 0x60, 0x1d, 0xaa,
4646
-	0x71, 0x40, 0x4e, 0xa8, 0x27, 0x70, 0xa7, 0x4f, 0xec, 0xab, 0x0a, 0x60, 0x4e, 0xa1, 0x07, 0xb0,
4647
-	0xd2, 0xa3, 0x84, 0x63, 0xee, 0xf5, 0xa8, 0x87, 0xfb, 0xae, 0xfe, 0x90, 0xb9, 0xfa, 0xf8, 0x2d,
4648
-	0x28, 0xfc, 0x0d, 0x13, 0xa0, 0x9d, 0xf0, 0x8d, 0x5c, 0x46, 0xf7, 0x60, 0x6c, 0xc9, 0x8d, 0x4e,
4649
-	0x71, 0x98, 0x30, 0x17, 0x15, 0xf3, 0xba, 0xb9, 0xdc, 0x3e, 0xc5, 0xa1, 0xe6, 0xd5, 0xa0, 0xaa,
4650
-	0x4e, 0x89, 0xab, 0x8d, 0x84, 0x74, 0xda, 0x6a, 0x6a, 0x4f, 0xb9, 0xe9, 0x3f, 0x60, 0x69, 0x80,
4651
-	0xf4, 0xd4, 0x92, 0xf2, 0xcc, 0xec, 0xe8, 0xbc, 0x56, 0x39, 0x90, 0x93, 0xd2, 0x58, 0x15, 0xb5,
4652
-	0xec, 0x44, 0x11, 0xba, 0x07, 0xf3, 0x19, 0x54, 0x7b, 0xec, 0x9a, 0xc2, 0x2f, 0x8c, 0xce, 0x6b,
4653
-	0xb3, 0x29, 0x5e, 0x19, 0x6d, 0x36, 0xe5, 0x28, 0xb7, 0xfd, 0x17, 0x16, 0x35, 0xcf, 0xf4, 0xdc,
4654
-	0x75, 0x95, 0xc9, 0x55, 0xb5, 0xb0, 0x9f, 0x1b, 0x2f, 0xcb, 0x57, 0xdb, 0x6f, 0xd9, 0xc8, 0xf7,
4655
-	0x89, 0xf2, 0xe0, 0xbf, 0x41, 0x73, 0xdc, 0xdc, 0x89, 0x37, 0x14, 0x48, 0xe7, 0xf6, 0x3a, 0xb3,
4656
-	0xe3, 0x46, 0x9a, 0x6d, 0x66, 0x4a, 0x5b, 0xbf, 0x12, 0x35, 0xdb, 0xd2, 0xce, 0xdc, 0x4a, 0xd5,
4657
-	0x72, 0x7f, 0xae, 0xe8, 0x97, 0x9f, 0xa1, 0xa4, 0x49, 0x37, 0x0d, 0x2d, 0xed, 0xc5, 0xd5, 0x31,
4658
-	0x94, 0x76, 0xe3, 0x0e, 0xa0, 0x0c, 0x95, 0xbb, 0xf6, 0xa6, 0xb1, 0xd1, 0x56, 0x6e, 0xdd, 0x06,
4659
-	0x2c, 0x69, 0xf0, 0xb8, 0x81, 0x6f, 0x29, 0xb4, 0xae, 0xd7, 0x0b, 0xd3, 0xc5, 0x59, 0x11, 0x4d,
4660
-	0xf4, 0x6d, 0x43, 0xfb, 0x71, 0x8e, 0xfd, 0x58, 0x5b, 0x95, 0x7c, 0xed, 0x13, 0xda, 0xaa, 0xe8,
4661
-	0x1f, 0x6a, 0x2b, 0x74, 0xed, 0x23, 0x6d, 0x85, 0xdd, 0x49, 0xb1, 0xa6, 0xd9, 0xd7, 0x93, 0xcf,
4662
-	0x9e, 0x5c, 0x38, 0x34, 0x1c, 0xff, 0x65, 0x7a, 0x75, 0xdc, 0x51, 0xdf, 0xfe, 0xad, 0xcb, 0x2e,
4663
-	0xf8, 0xa7, 0x81, 0xe0, 0x67, 0xe9, 0xed, 0x71, 0x1f, 0x4a, 0xd2, 0xe5, 0x76, 0x7d, 0x12, 0xae,
4664
-	0xa2, 0xa0, 0x47, 0xd9, 0x95, 0xb0, 0x31, 0x09, 0x39, 0xbd, 0x39, 0xda, 0x00, 0xfa, 0xc9, 0x15,
4665
-	0x5e, 0x68, 0x6f, 0x4e, 0x20, 0xd1, 0x9c, 0x1b, 0x9d, 0xd7, 0xac, 0xaf, 0x15, 0xf9, 0x60, 0xaf,
4666
-	0xe5, 0x58, 0x5a, 0xe7, 0xc0, 0x0b, 0xeb, 0x04, 0xaa, 0x06, 0x30, 0xbf, 0x77, 0x0b, 0xc6, 0xbd,
4667
-	0x9b, 0x77, 0x04, 0x53, 0x9f, 0xe8, 0x08, 0x8a, 0x9f, 0xec, 0x08, 0x4a, 0x63, 0x1d, 0x41, 0xfd,
4668
-	0xf7, 0x69, 0xb0, 0xb2, 0x86, 0x07, 0x61, 0x58, 0xa5, 0xcc, 0x8d, 0x08, 0x3f, 0xa1, 0x1e, 0x71,
4669
-	0x3b, 0x67, 0x82, 0x44, 0x2e, 0x27, 0x5e, 0xcc, 0x23, 0x7a, 0x42, 0x92, 0x66, 0x71, 0xf3, 0x92,
4670
-	0xce, 0x49, 0xd7, 0xe6, 0x06, 0x65, 0x6d, 0x2d, 0xd3, 0x94, 0x2a, 0x4e, 0x2a, 0x82, 0xbe, 0x83,
4671
-	0xeb, 0x79, 0x88, 0xae, 0xa1, 0x3e, 0x35, 0x81, 0xfa, 0x52, 0xa6, 0xde, 0xcd, 0x95, 0x0f, 0x60,
4672
-	0x89, 0x32, 0xf7, 0x6d, 0x4c, 0xe2, 0x31, 0xdd, 0xe2, 0x04, 0xba, 0x8b, 0x94, 0xbd, 0x52, 0xfc,
4673
-	0x5c, 0xd5, 0x85, 0x15, 0xa3, 0x24, 0xf2, 0x2e, 0x36, 0xb4, 0x4b, 0x13, 0x68, 0x2f, 0x67, 0x39,
4674
-	0xcb, 0xbb, 0x3b, 0x0f, 0xf0, 0x3d, 0x2c, 0x53, 0xe6, 0x9e, 0x62, 0x2a, 0x3e, 0x54, 0x9f, 0x9e,
4675
-	0xac, 0x22, 0xaf, 0x31, 0x15, 0xe3, 0xd2, 0xba, 0x22, 0x03, 0xc2, 0xfd, 0xb1, 0x8a, 0xcc, 0x4c,
4676
-	0x56, 0x91, 0x7d, 0xc5, 0xcf, 0x55, 0x5b, 0xb0, 0x48, 0xd9, 0x87, 0xb9, 0x96, 0x27, 0xd0, 0xbc,
4677
-	0x4a, 0xd9, 0x78, 0x9e, 0xaf, 0x60, 0x31, 0x22, 0x9e, 0x60, 0xdc, 0x74, 0x5b, 0x65, 0x02, 0xc5,
4678
-	0x85, 0x84, 0x9e, 0x49, 0xd6, 0x4f, 0x00, 0xf2, 0x75, 0x34, 0x0f, 0x53, 0x2c, 0x54, 0x47, 0xc7,
4679
-	0x72, 0xa6, 0x58, 0x28, 0x7b, 0xc0, 0xae, 0xfc, 0xec, 0xe8, 0x83, 0x63, 0x39, 0xc9, 0x48, 0x9e,
4680
-	0xa7, 0x01, 0x3e, 0x62, 0x69, 0x13, 0xa8, 0x07, 0x6a, 0x96, 0x06, 0x8c, 0x27, 0x67, 0x47, 0x0f,
4681
-	0xe4, 0xec, 0x09, 0xee, 0xc7, 0x24, 0xed, 0x79, 0xd4, 0xa0, 0xfe, 0x53, 0x01, 0x2a, 0xe9, 0x6f,
4682
-	0x00, 0x7a, 0x64, 0xb6, 0xd1, 0xc5, 0xcf, 0xff, 0x75, 0x48, 0x92, 0xde, 0x4c, 0xd6, 0x6b, 0xdf,
4683
-	0xcf, 0x7b, 0xed, 0x7f, 0x4c, 0x4e, 0x1a, 0x72, 0x02, 0x56, 0x36, 0x67, 0xec, 0xb6, 0x30, 0xb6,
4684
-	0xdb, 0x1a, 0x54, 0x7b, 0x1e, 0x76, 0x7b, 0x38, 0xe8, 0xf6, 0x89, 0xee, 0x10, 0xe7, 0x1c, 0xe8,
4685
-	0x79, 0xf8, 0xb9, 0x9e, 0x49, 0x01, 0xac, 0x73, 0x44, 0x3c, 0x11, 0xa9, 0xa2, 0x68, 0xc0, 0x4b,
4686
-	0x3d, 0x53, 0xff, 0x65, 0x0a, 0xaa, 0xc6, 0x9f, 0x8b, 0xec, 0xa1, 0x03, 0x3c, 0x48, 0xe3, 0xa8,
4687
-	0x67, 0xd9, 0xb1, 0xf1, 0xa1, 0xfe, 0x96, 0x24, 0x9f, 0xa9, 0x32, 0x1f, 0xaa, 0x8f, 0x02, 0xba,
4688
-	0x0d, 0xc0, 0x87, 0x6e, 0x88, 0xbd, 0x63, 0x92, 0xc8, 0x97, 0x1c, 0x8b, 0x0f, 0x5b, 0x7a, 0x02,
4689
-	0xdd, 0x04, 0x8b, 0x0f, 0x5d, 0xc2, 0x39, 0xe3, 0x51, 0x52, 0xfb, 0x0a, 0x1f, 0x3e, 0x55, 0xe3,
4690
-	0x84, 0xdb, 0xe5, 0x4c, 0xf6, 0x02, 0xc9, 0x3b, 0xb0, 0xf8, 0xf0, 0x89, 0x9e, 0x90, 0x51, 0x45,
4691
-	0x1a, 0x55, 0xb7, 0x9e, 0x65, 0x91, 0x47, 0x15, 0x79, 0x54, 0xdd, 0x7a, 0x5a, 0xc2, 0x8c, 0x2a,
4692
-	0xb2, 0xa8, 0xba, 0xfb, 0xac, 0x08, 0x23, 0xaa, 0xc8, 0xa3, 0x5a, 0x29, 0x37, 0x89, 0xda, 0xb4,
4693
-	0xdf, 0xbd, 0x5f, 0xbb, 0xf2, 0xc7, 0xfb, 0xb5, 0x2b, 0x3f, 0x8e, 0xd6, 0x0a, 0xef, 0x46, 0x6b,
4694
-	0x85, 0xdf, 0x46, 0x6b, 0x85, 0xbf, 0x46, 0x6b, 0x85, 0xce, 0x8c, 0xfa, 0x0d, 0xff, 0xff, 0xdf,
4695
-	0x01, 0x00, 0x00, 0xff, 0xff, 0x19, 0x9d, 0xe2, 0xd3, 0xe5, 0x0f, 0x00, 0x00,
4696
-}
4697 1
deleted file mode 100644
... ...
@@ -1,136 +0,0 @@
1
-syntax = "proto3";
2
-
3
-package io.containerd.cgroups.v1;
4
-
5
-import "gogoproto/gogo.proto";
6
-
7
-message 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
-}
16
-
17
-message HugetlbStat {
18
-	uint64 usage = 1;
19
-	uint64 max = 2;
20
-	uint64 failcnt = 3;
21
-	string pagesize = 4;
22
-}
23
-
24
-message PidsStat {
25
-	uint64 current = 1;
26
-	uint64 limit = 2;
27
-}
28
-
29
-message CPUStat {
30
-	CPUUsage usage = 1;
31
-	Throttle throttling = 2;
32
-}
33
-
34
-message CPUUsage {
35
-	// values in nanoseconds
36
-	uint64 total = 1;
37
-	uint64 kernel = 2;
38
-	uint64 user = 3;
39
-	repeated uint64 per_cpu = 4 [(gogoproto.customname) = "PerCPU"];
40
-
41
-}
42
-
43
-message Throttle {
44
-	uint64 periods = 1;
45
-	uint64 throttled_periods = 2;
46
-	uint64 throttled_time = 3;
47
-}
48
-
49
-message MemoryStat {
50
-	uint64 cache = 1;
51
-	uint64 rss = 2 [(gogoproto.customname) = "RSS"];
52
-	uint64 rss_huge = 3 [(gogoproto.customname) = "RSSHuge"];
53
-	uint64 mapped_file = 4;
54
-	uint64 dirty = 5;
55
-	uint64 writeback = 6;
56
-	uint64 pg_pg_in = 7;
57
-	uint64 pg_pg_out = 8;
58
-	uint64 pg_fault = 9;
59
-	uint64 pg_maj_fault = 10;
60
-	uint64 inactive_anon = 11;
61
-	uint64 active_anon = 12;
62
-	uint64 inactive_file = 13;
63
-	uint64 active_file = 14;
64
-	uint64 unevictable = 15;
65
-	uint64 hierarchical_memory_limit = 16;
66
-	uint64 hierarchical_swap_limit = 17;
67
-	uint64 total_cache = 18;
68
-	uint64 total_rss = 19 [(gogoproto.customname) = "TotalRSS"];
69
-	uint64 total_rss_huge = 20 [(gogoproto.customname) = "TotalRSSHuge"];
70
-	uint64 total_mapped_file = 21;
71
-	uint64 total_dirty = 22;
72
-	uint64 total_writeback = 23;
73
-	uint64 total_pg_pg_in = 24;
74
-	uint64 total_pg_pg_out = 25;
75
-	uint64 total_pg_fault = 26;
76
-	uint64 total_pg_maj_fault = 27;
77
-	uint64 total_inactive_anon = 28;
78
-	uint64 total_active_anon = 29;
79
-	uint64 total_inactive_file = 30;
80
-	uint64 total_active_file = 31;
81
-	uint64 total_unevictable = 32;
82
-	MemoryEntry usage = 33;
83
-	MemoryEntry swap = 34;
84
-	MemoryEntry kernel = 35;
85
-	MemoryEntry kernel_tcp = 36 [(gogoproto.customname) = "KernelTCP"];
86
-
87
-}
88
-
89
-message MemoryEntry {
90
-	uint64 limit = 1;
91
-	uint64 usage = 2;
92
-	uint64 max = 3;
93
-	uint64 failcnt = 4;
94
-}
95
-
96
-message BlkIOStat {
97
-	repeated BlkIOEntry io_service_bytes_recursive = 1;
98
-	repeated BlkIOEntry io_serviced_recursive = 2;
99
-	repeated BlkIOEntry io_queued_recursive = 3;
100
-	repeated BlkIOEntry io_service_time_recursive = 4;
101
-	repeated BlkIOEntry io_wait_time_recursive = 5;
102
-	repeated BlkIOEntry io_merged_recursive = 6;
103
-	repeated BlkIOEntry io_time_recursive = 7;
104
-	repeated BlkIOEntry sectors_recursive = 8;
105
-}
106
-
107
-message BlkIOEntry {
108
-	string op = 1;
109
-	string device = 2;
110
-	uint64 major = 3;
111
-	uint64 minor = 4;
112
-	uint64 value = 5;
113
-}
114
-
115
-message RdmaStat {
116
-	repeated RdmaEntry current = 1;
117
-	repeated RdmaEntry limit = 2;
118
-}
119
-
120
-message RdmaEntry {
121
-	string device = 1;
122
-	uint32 hca_handles = 2;
123
-	uint32 hca_objects = 3;
124
-}
125
-
126
-message NetworkStat {
127
-	string name = 1;
128
-	uint64 rx_bytes = 2;
129
-	uint64 rx_packets = 3;
130
-	uint64 rx_errors  = 4;
131
-	uint64 rx_dropped = 5;
132
-	uint64 tx_bytes = 6;
133
-	uint64 tx_packets = 7;
134
-	uint64 tx_errors = 8;
135
-	uint64 tx_dropped = 9;
136
-}
... ...
@@ -23,6 +23,7 @@ import (
23 23
 	"strconv"
24 24
 	"strings"
25 25
 
26
+	v1 "github.com/containerd/cgroups/stats/v1"
26 27
 	specs "github.com/opencontainers/runtime-spec/specs-go"
27 28
 )
28 29
 
... ...
@@ -62,7 +63,7 @@ func (p *pidsController) Update(path string, resources *specs.LinuxResources) er
62 62
 	return p.Create(path, resources)
63 63
 }
64 64
 
65
-func (p *pidsController) Stat(path string, stats *Metrics) error {
65
+func (p *pidsController) Stat(path string, stats *v1.Metrics) error {
66 66
 	current, err := readUint(filepath.Join(p.Path(path), "pids.current"))
67 67
 	if err != nil {
68 68
 		return err
... ...
@@ -77,7 +78,7 @@ func (p *pidsController) Stat(path string, stats *Metrics) error {
77 77
 			return err
78 78
 		}
79 79
 	}
80
-	stats.Pids = &PidsStat{
80
+	stats.Pids = &v1.PidsStat{
81 81
 		Current: current,
82 82
 		Limit:   max,
83 83
 	}
... ...
@@ -24,6 +24,7 @@ import (
24 24
 	"strconv"
25 25
 	"strings"
26 26
 
27
+	v1 "github.com/containerd/cgroups/stats/v1"
27 28
 	specs "github.com/opencontainers/runtime-spec/specs-go"
28 29
 )
29 30
 
... ...
@@ -80,7 +81,7 @@ func (p *rdmaController) Update(path string, resources *specs.LinuxResources) er
80 80
 	return p.Create(path, resources)
81 81
 }
82 82
 
83
-func parseRdmaKV(raw string, entry *RdmaEntry) {
83
+func parseRdmaKV(raw string, entry *v1.RdmaEntry) {
84 84
 	var value uint64
85 85
 	var err error
86 86
 
... ...
@@ -103,13 +104,13 @@ func parseRdmaKV(raw string, entry *RdmaEntry) {
103 103
 	}
104 104
 }
105 105
 
106
-func toRdmaEntry(strEntries []string) []*RdmaEntry {
107
-	var rdmaEntries []*RdmaEntry
106
+func toRdmaEntry(strEntries []string) []*v1.RdmaEntry {
107
+	var rdmaEntries []*v1.RdmaEntry
108 108
 	for i := range strEntries {
109 109
 		parts := strings.Fields(strEntries[i])
110 110
 		switch len(parts) {
111 111
 		case 3:
112
-			entry := new(RdmaEntry)
112
+			entry := new(v1.RdmaEntry)
113 113
 			entry.Device = parts[0]
114 114
 			parseRdmaKV(parts[1], entry)
115 115
 			parseRdmaKV(parts[2], entry)
... ...
@@ -122,7 +123,7 @@ func toRdmaEntry(strEntries []string) []*RdmaEntry {
122 122
 	return rdmaEntries
123 123
 }
124 124
 
125
-func (p *rdmaController) Stat(path string, stats *Metrics) error {
125
+func (p *rdmaController) Stat(path string, stats *v1.Metrics) error {
126 126
 
127 127
 	currentData, err := ioutil.ReadFile(filepath.Join(p.Path(path), "rdma.current"))
128 128
 	if err != nil {
... ...
@@ -145,7 +146,7 @@ func (p *rdmaController) Stat(path string, stats *Metrics) error {
145 145
 	currentEntries := toRdmaEntry(currentPerDevices)
146 146
 	maxEntries := toRdmaEntry(maxPerDevices)
147 147
 
148
-	stats.Rdma = &RdmaStat{
148
+	stats.Rdma = &v1.RdmaStat{
149 149
 		Current: currentEntries,
150 150
 		Limit:   maxEntries,
151 151
 	}
152 152
new file mode 100644
... ...
@@ -0,0 +1,17 @@
0
+/*
1
+   Copyright The containerd Authors.
2
+
3
+   Licensed under the Apache License, Version 2.0 (the "License");
4
+   you may not use this file except in compliance with the License.
5
+   You may obtain a copy of the License at
6
+
7
+       http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+   Unless required by applicable law or agreed to in writing, software
10
+   distributed under the License is distributed on an "AS IS" BASIS,
11
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+   See the License for the specific language governing permissions and
13
+   limitations under the License.
14
+*/
15
+
16
+package v1
0 17
new file mode 100644
... ...
@@ -0,0 +1,5714 @@
0
+// Code generated by protoc-gen-gogo. DO NOT EDIT.
1
+// source: github.com/containerd/cgroups/stats/v1/metrics.proto
2
+
3
+package v1
4
+
5
+import (
6
+	fmt "fmt"
7
+	_ "github.com/gogo/protobuf/gogoproto"
8
+	proto "github.com/gogo/protobuf/proto"
9
+	io "io"
10
+	math "math"
11
+	reflect "reflect"
12
+	strings "strings"
13
+)
14
+
15
+// Reference imports to suppress errors if they are not otherwise used.
16
+var _ = proto.Marshal
17
+var _ = fmt.Errorf
18
+var _ = math.Inf
19
+
20
+// This is a compile-time assertion to ensure that this generated file
21
+// is compatible with the proto package it is being compiled against.
22
+// A compilation error at this line likely means your copy of the
23
+// proto package needs to be updated.
24
+const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
25
+
26
+type Metrics struct {
27
+	Hugetlb              []*HugetlbStat `protobuf:"bytes,1,rep,name=hugetlb,proto3" json:"hugetlb,omitempty"`
28
+	Pids                 *PidsStat      `protobuf:"bytes,2,opt,name=pids,proto3" json:"pids,omitempty"`
29
+	CPU                  *CPUStat       `protobuf:"bytes,3,opt,name=cpu,proto3" json:"cpu,omitempty"`
30
+	Memory               *MemoryStat    `protobuf:"bytes,4,opt,name=memory,proto3" json:"memory,omitempty"`
31
+	Blkio                *BlkIOStat     `protobuf:"bytes,5,opt,name=blkio,proto3" json:"blkio,omitempty"`
32
+	Rdma                 *RdmaStat      `protobuf:"bytes,6,opt,name=rdma,proto3" json:"rdma,omitempty"`
33
+	Network              []*NetworkStat `protobuf:"bytes,7,rep,name=network,proto3" json:"network,omitempty"`
34
+	CgroupStats          *CgroupStats   `protobuf:"bytes,8,opt,name=cgroup_stats,json=cgroupStats,proto3" json:"cgroup_stats,omitempty"`
35
+	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
36
+	XXX_unrecognized     []byte         `json:"-"`
37
+	XXX_sizecache        int32          `json:"-"`
38
+}
39
+
40
+func (m *Metrics) Reset()      { *m = Metrics{} }
41
+func (*Metrics) ProtoMessage() {}
42
+func (*Metrics) Descriptor() ([]byte, []int) {
43
+	return fileDescriptor_a17b2d87c332bfaa, []int{0}
44
+}
45
+func (m *Metrics) XXX_Unmarshal(b []byte) error {
46
+	return m.Unmarshal(b)
47
+}
48
+func (m *Metrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
49
+	if deterministic {
50
+		return xxx_messageInfo_Metrics.Marshal(b, m, deterministic)
51
+	} else {
52
+		b = b[:cap(b)]
53
+		n, err := m.MarshalTo(b)
54
+		if err != nil {
55
+			return nil, err
56
+		}
57
+		return b[:n], nil
58
+	}
59
+}
60
+func (m *Metrics) XXX_Merge(src proto.Message) {
61
+	xxx_messageInfo_Metrics.Merge(m, src)
62
+}
63
+func (m *Metrics) XXX_Size() int {
64
+	return m.Size()
65
+}
66
+func (m *Metrics) XXX_DiscardUnknown() {
67
+	xxx_messageInfo_Metrics.DiscardUnknown(m)
68
+}
69
+
70
+var xxx_messageInfo_Metrics proto.InternalMessageInfo
71
+
72
+type HugetlbStat struct {
73
+	Usage                uint64   `protobuf:"varint,1,opt,name=usage,proto3" json:"usage,omitempty"`
74
+	Max                  uint64   `protobuf:"varint,2,opt,name=max,proto3" json:"max,omitempty"`
75
+	Failcnt              uint64   `protobuf:"varint,3,opt,name=failcnt,proto3" json:"failcnt,omitempty"`
76
+	Pagesize             string   `protobuf:"bytes,4,opt,name=pagesize,proto3" json:"pagesize,omitempty"`
77
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
78
+	XXX_unrecognized     []byte   `json:"-"`
79
+	XXX_sizecache        int32    `json:"-"`
80
+}
81
+
82
+func (m *HugetlbStat) Reset()      { *m = HugetlbStat{} }
83
+func (*HugetlbStat) ProtoMessage() {}
84
+func (*HugetlbStat) Descriptor() ([]byte, []int) {
85
+	return fileDescriptor_a17b2d87c332bfaa, []int{1}
86
+}
87
+func (m *HugetlbStat) XXX_Unmarshal(b []byte) error {
88
+	return m.Unmarshal(b)
89
+}
90
+func (m *HugetlbStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
91
+	if deterministic {
92
+		return xxx_messageInfo_HugetlbStat.Marshal(b, m, deterministic)
93
+	} else {
94
+		b = b[:cap(b)]
95
+		n, err := m.MarshalTo(b)
96
+		if err != nil {
97
+			return nil, err
98
+		}
99
+		return b[:n], nil
100
+	}
101
+}
102
+func (m *HugetlbStat) XXX_Merge(src proto.Message) {
103
+	xxx_messageInfo_HugetlbStat.Merge(m, src)
104
+}
105
+func (m *HugetlbStat) XXX_Size() int {
106
+	return m.Size()
107
+}
108
+func (m *HugetlbStat) XXX_DiscardUnknown() {
109
+	xxx_messageInfo_HugetlbStat.DiscardUnknown(m)
110
+}
111
+
112
+var xxx_messageInfo_HugetlbStat proto.InternalMessageInfo
113
+
114
+type PidsStat struct {
115
+	Current              uint64   `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"`
116
+	Limit                uint64   `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
117
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
118
+	XXX_unrecognized     []byte   `json:"-"`
119
+	XXX_sizecache        int32    `json:"-"`
120
+}
121
+
122
+func (m *PidsStat) Reset()      { *m = PidsStat{} }
123
+func (*PidsStat) ProtoMessage() {}
124
+func (*PidsStat) Descriptor() ([]byte, []int) {
125
+	return fileDescriptor_a17b2d87c332bfaa, []int{2}
126
+}
127
+func (m *PidsStat) XXX_Unmarshal(b []byte) error {
128
+	return m.Unmarshal(b)
129
+}
130
+func (m *PidsStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
131
+	if deterministic {
132
+		return xxx_messageInfo_PidsStat.Marshal(b, m, deterministic)
133
+	} else {
134
+		b = b[:cap(b)]
135
+		n, err := m.MarshalTo(b)
136
+		if err != nil {
137
+			return nil, err
138
+		}
139
+		return b[:n], nil
140
+	}
141
+}
142
+func (m *PidsStat) XXX_Merge(src proto.Message) {
143
+	xxx_messageInfo_PidsStat.Merge(m, src)
144
+}
145
+func (m *PidsStat) XXX_Size() int {
146
+	return m.Size()
147
+}
148
+func (m *PidsStat) XXX_DiscardUnknown() {
149
+	xxx_messageInfo_PidsStat.DiscardUnknown(m)
150
+}
151
+
152
+var xxx_messageInfo_PidsStat proto.InternalMessageInfo
153
+
154
+type CPUStat struct {
155
+	Usage                *CPUUsage `protobuf:"bytes,1,opt,name=usage,proto3" json:"usage,omitempty"`
156
+	Throttling           *Throttle `protobuf:"bytes,2,opt,name=throttling,proto3" json:"throttling,omitempty"`
157
+	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
158
+	XXX_unrecognized     []byte    `json:"-"`
159
+	XXX_sizecache        int32     `json:"-"`
160
+}
161
+
162
+func (m *CPUStat) Reset()      { *m = CPUStat{} }
163
+func (*CPUStat) ProtoMessage() {}
164
+func (*CPUStat) Descriptor() ([]byte, []int) {
165
+	return fileDescriptor_a17b2d87c332bfaa, []int{3}
166
+}
167
+func (m *CPUStat) XXX_Unmarshal(b []byte) error {
168
+	return m.Unmarshal(b)
169
+}
170
+func (m *CPUStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
171
+	if deterministic {
172
+		return xxx_messageInfo_CPUStat.Marshal(b, m, deterministic)
173
+	} else {
174
+		b = b[:cap(b)]
175
+		n, err := m.MarshalTo(b)
176
+		if err != nil {
177
+			return nil, err
178
+		}
179
+		return b[:n], nil
180
+	}
181
+}
182
+func (m *CPUStat) XXX_Merge(src proto.Message) {
183
+	xxx_messageInfo_CPUStat.Merge(m, src)
184
+}
185
+func (m *CPUStat) XXX_Size() int {
186
+	return m.Size()
187
+}
188
+func (m *CPUStat) XXX_DiscardUnknown() {
189
+	xxx_messageInfo_CPUStat.DiscardUnknown(m)
190
+}
191
+
192
+var xxx_messageInfo_CPUStat proto.InternalMessageInfo
193
+
194
+type CPUUsage struct {
195
+	// values in nanoseconds
196
+	Total                uint64   `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
197
+	Kernel               uint64   `protobuf:"varint,2,opt,name=kernel,proto3" json:"kernel,omitempty"`
198
+	User                 uint64   `protobuf:"varint,3,opt,name=user,proto3" json:"user,omitempty"`
199
+	PerCPU               []uint64 `protobuf:"varint,4,rep,packed,name=per_cpu,json=perCpu,proto3" json:"per_cpu,omitempty"`
200
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
201
+	XXX_unrecognized     []byte   `json:"-"`
202
+	XXX_sizecache        int32    `json:"-"`
203
+}
204
+
205
+func (m *CPUUsage) Reset()      { *m = CPUUsage{} }
206
+func (*CPUUsage) ProtoMessage() {}
207
+func (*CPUUsage) Descriptor() ([]byte, []int) {
208
+	return fileDescriptor_a17b2d87c332bfaa, []int{4}
209
+}
210
+func (m *CPUUsage) XXX_Unmarshal(b []byte) error {
211
+	return m.Unmarshal(b)
212
+}
213
+func (m *CPUUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
214
+	if deterministic {
215
+		return xxx_messageInfo_CPUUsage.Marshal(b, m, deterministic)
216
+	} else {
217
+		b = b[:cap(b)]
218
+		n, err := m.MarshalTo(b)
219
+		if err != nil {
220
+			return nil, err
221
+		}
222
+		return b[:n], nil
223
+	}
224
+}
225
+func (m *CPUUsage) XXX_Merge(src proto.Message) {
226
+	xxx_messageInfo_CPUUsage.Merge(m, src)
227
+}
228
+func (m *CPUUsage) XXX_Size() int {
229
+	return m.Size()
230
+}
231
+func (m *CPUUsage) XXX_DiscardUnknown() {
232
+	xxx_messageInfo_CPUUsage.DiscardUnknown(m)
233
+}
234
+
235
+var xxx_messageInfo_CPUUsage proto.InternalMessageInfo
236
+
237
+type Throttle struct {
238
+	Periods              uint64   `protobuf:"varint,1,opt,name=periods,proto3" json:"periods,omitempty"`
239
+	ThrottledPeriods     uint64   `protobuf:"varint,2,opt,name=throttled_periods,json=throttledPeriods,proto3" json:"throttled_periods,omitempty"`
240
+	ThrottledTime        uint64   `protobuf:"varint,3,opt,name=throttled_time,json=throttledTime,proto3" json:"throttled_time,omitempty"`
241
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
242
+	XXX_unrecognized     []byte   `json:"-"`
243
+	XXX_sizecache        int32    `json:"-"`
244
+}
245
+
246
+func (m *Throttle) Reset()      { *m = Throttle{} }
247
+func (*Throttle) ProtoMessage() {}
248
+func (*Throttle) Descriptor() ([]byte, []int) {
249
+	return fileDescriptor_a17b2d87c332bfaa, []int{5}
250
+}
251
+func (m *Throttle) XXX_Unmarshal(b []byte) error {
252
+	return m.Unmarshal(b)
253
+}
254
+func (m *Throttle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
255
+	if deterministic {
256
+		return xxx_messageInfo_Throttle.Marshal(b, m, deterministic)
257
+	} else {
258
+		b = b[:cap(b)]
259
+		n, err := m.MarshalTo(b)
260
+		if err != nil {
261
+			return nil, err
262
+		}
263
+		return b[:n], nil
264
+	}
265
+}
266
+func (m *Throttle) XXX_Merge(src proto.Message) {
267
+	xxx_messageInfo_Throttle.Merge(m, src)
268
+}
269
+func (m *Throttle) XXX_Size() int {
270
+	return m.Size()
271
+}
272
+func (m *Throttle) XXX_DiscardUnknown() {
273
+	xxx_messageInfo_Throttle.DiscardUnknown(m)
274
+}
275
+
276
+var xxx_messageInfo_Throttle proto.InternalMessageInfo
277
+
278
+type MemoryStat struct {
279
+	Cache                   uint64       `protobuf:"varint,1,opt,name=cache,proto3" json:"cache,omitempty"`
280
+	RSS                     uint64       `protobuf:"varint,2,opt,name=rss,proto3" json:"rss,omitempty"`
281
+	RSSHuge                 uint64       `protobuf:"varint,3,opt,name=rss_huge,json=rssHuge,proto3" json:"rss_huge,omitempty"`
282
+	MappedFile              uint64       `protobuf:"varint,4,opt,name=mapped_file,json=mappedFile,proto3" json:"mapped_file,omitempty"`
283
+	Dirty                   uint64       `protobuf:"varint,5,opt,name=dirty,proto3" json:"dirty,omitempty"`
284
+	Writeback               uint64       `protobuf:"varint,6,opt,name=writeback,proto3" json:"writeback,omitempty"`
285
+	PgPgIn                  uint64       `protobuf:"varint,7,opt,name=pg_pg_in,json=pgPgIn,proto3" json:"pg_pg_in,omitempty"`
286
+	PgPgOut                 uint64       `protobuf:"varint,8,opt,name=pg_pg_out,json=pgPgOut,proto3" json:"pg_pg_out,omitempty"`
287
+	PgFault                 uint64       `protobuf:"varint,9,opt,name=pg_fault,json=pgFault,proto3" json:"pg_fault,omitempty"`
288
+	PgMajFault              uint64       `protobuf:"varint,10,opt,name=pg_maj_fault,json=pgMajFault,proto3" json:"pg_maj_fault,omitempty"`
289
+	InactiveAnon            uint64       `protobuf:"varint,11,opt,name=inactive_anon,json=inactiveAnon,proto3" json:"inactive_anon,omitempty"`
290
+	ActiveAnon              uint64       `protobuf:"varint,12,opt,name=active_anon,json=activeAnon,proto3" json:"active_anon,omitempty"`
291
+	InactiveFile            uint64       `protobuf:"varint,13,opt,name=inactive_file,json=inactiveFile,proto3" json:"inactive_file,omitempty"`
292
+	ActiveFile              uint64       `protobuf:"varint,14,opt,name=active_file,json=activeFile,proto3" json:"active_file,omitempty"`
293
+	Unevictable             uint64       `protobuf:"varint,15,opt,name=unevictable,proto3" json:"unevictable,omitempty"`
294
+	HierarchicalMemoryLimit uint64       `protobuf:"varint,16,opt,name=hierarchical_memory_limit,json=hierarchicalMemoryLimit,proto3" json:"hierarchical_memory_limit,omitempty"`
295
+	HierarchicalSwapLimit   uint64       `protobuf:"varint,17,opt,name=hierarchical_swap_limit,json=hierarchicalSwapLimit,proto3" json:"hierarchical_swap_limit,omitempty"`
296
+	TotalCache              uint64       `protobuf:"varint,18,opt,name=total_cache,json=totalCache,proto3" json:"total_cache,omitempty"`
297
+	TotalRSS                uint64       `protobuf:"varint,19,opt,name=total_rss,json=totalRss,proto3" json:"total_rss,omitempty"`
298
+	TotalRSSHuge            uint64       `protobuf:"varint,20,opt,name=total_rss_huge,json=totalRssHuge,proto3" json:"total_rss_huge,omitempty"`
299
+	TotalMappedFile         uint64       `protobuf:"varint,21,opt,name=total_mapped_file,json=totalMappedFile,proto3" json:"total_mapped_file,omitempty"`
300
+	TotalDirty              uint64       `protobuf:"varint,22,opt,name=total_dirty,json=totalDirty,proto3" json:"total_dirty,omitempty"`
301
+	TotalWriteback          uint64       `protobuf:"varint,23,opt,name=total_writeback,json=totalWriteback,proto3" json:"total_writeback,omitempty"`
302
+	TotalPgPgIn             uint64       `protobuf:"varint,24,opt,name=total_pg_pg_in,json=totalPgPgIn,proto3" json:"total_pg_pg_in,omitempty"`
303
+	TotalPgPgOut            uint64       `protobuf:"varint,25,opt,name=total_pg_pg_out,json=totalPgPgOut,proto3" json:"total_pg_pg_out,omitempty"`
304
+	TotalPgFault            uint64       `protobuf:"varint,26,opt,name=total_pg_fault,json=totalPgFault,proto3" json:"total_pg_fault,omitempty"`
305
+	TotalPgMajFault         uint64       `protobuf:"varint,27,opt,name=total_pg_maj_fault,json=totalPgMajFault,proto3" json:"total_pg_maj_fault,omitempty"`
306
+	TotalInactiveAnon       uint64       `protobuf:"varint,28,opt,name=total_inactive_anon,json=totalInactiveAnon,proto3" json:"total_inactive_anon,omitempty"`
307
+	TotalActiveAnon         uint64       `protobuf:"varint,29,opt,name=total_active_anon,json=totalActiveAnon,proto3" json:"total_active_anon,omitempty"`
308
+	TotalInactiveFile       uint64       `protobuf:"varint,30,opt,name=total_inactive_file,json=totalInactiveFile,proto3" json:"total_inactive_file,omitempty"`
309
+	TotalActiveFile         uint64       `protobuf:"varint,31,opt,name=total_active_file,json=totalActiveFile,proto3" json:"total_active_file,omitempty"`
310
+	TotalUnevictable        uint64       `protobuf:"varint,32,opt,name=total_unevictable,json=totalUnevictable,proto3" json:"total_unevictable,omitempty"`
311
+	Usage                   *MemoryEntry `protobuf:"bytes,33,opt,name=usage,proto3" json:"usage,omitempty"`
312
+	Swap                    *MemoryEntry `protobuf:"bytes,34,opt,name=swap,proto3" json:"swap,omitempty"`
313
+	Kernel                  *MemoryEntry `protobuf:"bytes,35,opt,name=kernel,proto3" json:"kernel,omitempty"`
314
+	KernelTCP               *MemoryEntry `protobuf:"bytes,36,opt,name=kernel_tcp,json=kernelTcp,proto3" json:"kernel_tcp,omitempty"`
315
+	XXX_NoUnkeyedLiteral    struct{}     `json:"-"`
316
+	XXX_unrecognized        []byte       `json:"-"`
317
+	XXX_sizecache           int32        `json:"-"`
318
+}
319
+
320
+func (m *MemoryStat) Reset()      { *m = MemoryStat{} }
321
+func (*MemoryStat) ProtoMessage() {}
322
+func (*MemoryStat) Descriptor() ([]byte, []int) {
323
+	return fileDescriptor_a17b2d87c332bfaa, []int{6}
324
+}
325
+func (m *MemoryStat) XXX_Unmarshal(b []byte) error {
326
+	return m.Unmarshal(b)
327
+}
328
+func (m *MemoryStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
329
+	if deterministic {
330
+		return xxx_messageInfo_MemoryStat.Marshal(b, m, deterministic)
331
+	} else {
332
+		b = b[:cap(b)]
333
+		n, err := m.MarshalTo(b)
334
+		if err != nil {
335
+			return nil, err
336
+		}
337
+		return b[:n], nil
338
+	}
339
+}
340
+func (m *MemoryStat) XXX_Merge(src proto.Message) {
341
+	xxx_messageInfo_MemoryStat.Merge(m, src)
342
+}
343
+func (m *MemoryStat) XXX_Size() int {
344
+	return m.Size()
345
+}
346
+func (m *MemoryStat) XXX_DiscardUnknown() {
347
+	xxx_messageInfo_MemoryStat.DiscardUnknown(m)
348
+}
349
+
350
+var xxx_messageInfo_MemoryStat proto.InternalMessageInfo
351
+
352
+type MemoryEntry struct {
353
+	Limit                uint64   `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
354
+	Usage                uint64   `protobuf:"varint,2,opt,name=usage,proto3" json:"usage,omitempty"`
355
+	Max                  uint64   `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"`
356
+	Failcnt              uint64   `protobuf:"varint,4,opt,name=failcnt,proto3" json:"failcnt,omitempty"`
357
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
358
+	XXX_unrecognized     []byte   `json:"-"`
359
+	XXX_sizecache        int32    `json:"-"`
360
+}
361
+
362
+func (m *MemoryEntry) Reset()      { *m = MemoryEntry{} }
363
+func (*MemoryEntry) ProtoMessage() {}
364
+func (*MemoryEntry) Descriptor() ([]byte, []int) {
365
+	return fileDescriptor_a17b2d87c332bfaa, []int{7}
366
+}
367
+func (m *MemoryEntry) XXX_Unmarshal(b []byte) error {
368
+	return m.Unmarshal(b)
369
+}
370
+func (m *MemoryEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
371
+	if deterministic {
372
+		return xxx_messageInfo_MemoryEntry.Marshal(b, m, deterministic)
373
+	} else {
374
+		b = b[:cap(b)]
375
+		n, err := m.MarshalTo(b)
376
+		if err != nil {
377
+			return nil, err
378
+		}
379
+		return b[:n], nil
380
+	}
381
+}
382
+func (m *MemoryEntry) XXX_Merge(src proto.Message) {
383
+	xxx_messageInfo_MemoryEntry.Merge(m, src)
384
+}
385
+func (m *MemoryEntry) XXX_Size() int {
386
+	return m.Size()
387
+}
388
+func (m *MemoryEntry) XXX_DiscardUnknown() {
389
+	xxx_messageInfo_MemoryEntry.DiscardUnknown(m)
390
+}
391
+
392
+var xxx_messageInfo_MemoryEntry proto.InternalMessageInfo
393
+
394
+type BlkIOStat struct {
395
+	IoServiceBytesRecursive []*BlkIOEntry `protobuf:"bytes,1,rep,name=io_service_bytes_recursive,json=ioServiceBytesRecursive,proto3" json:"io_service_bytes_recursive,omitempty"`
396
+	IoServicedRecursive     []*BlkIOEntry `protobuf:"bytes,2,rep,name=io_serviced_recursive,json=ioServicedRecursive,proto3" json:"io_serviced_recursive,omitempty"`
397
+	IoQueuedRecursive       []*BlkIOEntry `protobuf:"bytes,3,rep,name=io_queued_recursive,json=ioQueuedRecursive,proto3" json:"io_queued_recursive,omitempty"`
398
+	IoServiceTimeRecursive  []*BlkIOEntry `protobuf:"bytes,4,rep,name=io_service_time_recursive,json=ioServiceTimeRecursive,proto3" json:"io_service_time_recursive,omitempty"`
399
+	IoWaitTimeRecursive     []*BlkIOEntry `protobuf:"bytes,5,rep,name=io_wait_time_recursive,json=ioWaitTimeRecursive,proto3" json:"io_wait_time_recursive,omitempty"`
400
+	IoMergedRecursive       []*BlkIOEntry `protobuf:"bytes,6,rep,name=io_merged_recursive,json=ioMergedRecursive,proto3" json:"io_merged_recursive,omitempty"`
401
+	IoTimeRecursive         []*BlkIOEntry `protobuf:"bytes,7,rep,name=io_time_recursive,json=ioTimeRecursive,proto3" json:"io_time_recursive,omitempty"`
402
+	SectorsRecursive        []*BlkIOEntry `protobuf:"bytes,8,rep,name=sectors_recursive,json=sectorsRecursive,proto3" json:"sectors_recursive,omitempty"`
403
+	XXX_NoUnkeyedLiteral    struct{}      `json:"-"`
404
+	XXX_unrecognized        []byte        `json:"-"`
405
+	XXX_sizecache           int32         `json:"-"`
406
+}
407
+
408
+func (m *BlkIOStat) Reset()      { *m = BlkIOStat{} }
409
+func (*BlkIOStat) ProtoMessage() {}
410
+func (*BlkIOStat) Descriptor() ([]byte, []int) {
411
+	return fileDescriptor_a17b2d87c332bfaa, []int{8}
412
+}
413
+func (m *BlkIOStat) XXX_Unmarshal(b []byte) error {
414
+	return m.Unmarshal(b)
415
+}
416
+func (m *BlkIOStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
417
+	if deterministic {
418
+		return xxx_messageInfo_BlkIOStat.Marshal(b, m, deterministic)
419
+	} else {
420
+		b = b[:cap(b)]
421
+		n, err := m.MarshalTo(b)
422
+		if err != nil {
423
+			return nil, err
424
+		}
425
+		return b[:n], nil
426
+	}
427
+}
428
+func (m *BlkIOStat) XXX_Merge(src proto.Message) {
429
+	xxx_messageInfo_BlkIOStat.Merge(m, src)
430
+}
431
+func (m *BlkIOStat) XXX_Size() int {
432
+	return m.Size()
433
+}
434
+func (m *BlkIOStat) XXX_DiscardUnknown() {
435
+	xxx_messageInfo_BlkIOStat.DiscardUnknown(m)
436
+}
437
+
438
+var xxx_messageInfo_BlkIOStat proto.InternalMessageInfo
439
+
440
+type BlkIOEntry struct {
441
+	Op                   string   `protobuf:"bytes,1,opt,name=op,proto3" json:"op,omitempty"`
442
+	Device               string   `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"`
443
+	Major                uint64   `protobuf:"varint,3,opt,name=major,proto3" json:"major,omitempty"`
444
+	Minor                uint64   `protobuf:"varint,4,opt,name=minor,proto3" json:"minor,omitempty"`
445
+	Value                uint64   `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"`
446
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
447
+	XXX_unrecognized     []byte   `json:"-"`
448
+	XXX_sizecache        int32    `json:"-"`
449
+}
450
+
451
+func (m *BlkIOEntry) Reset()      { *m = BlkIOEntry{} }
452
+func (*BlkIOEntry) ProtoMessage() {}
453
+func (*BlkIOEntry) Descriptor() ([]byte, []int) {
454
+	return fileDescriptor_a17b2d87c332bfaa, []int{9}
455
+}
456
+func (m *BlkIOEntry) XXX_Unmarshal(b []byte) error {
457
+	return m.Unmarshal(b)
458
+}
459
+func (m *BlkIOEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
460
+	if deterministic {
461
+		return xxx_messageInfo_BlkIOEntry.Marshal(b, m, deterministic)
462
+	} else {
463
+		b = b[:cap(b)]
464
+		n, err := m.MarshalTo(b)
465
+		if err != nil {
466
+			return nil, err
467
+		}
468
+		return b[:n], nil
469
+	}
470
+}
471
+func (m *BlkIOEntry) XXX_Merge(src proto.Message) {
472
+	xxx_messageInfo_BlkIOEntry.Merge(m, src)
473
+}
474
+func (m *BlkIOEntry) XXX_Size() int {
475
+	return m.Size()
476
+}
477
+func (m *BlkIOEntry) XXX_DiscardUnknown() {
478
+	xxx_messageInfo_BlkIOEntry.DiscardUnknown(m)
479
+}
480
+
481
+var xxx_messageInfo_BlkIOEntry proto.InternalMessageInfo
482
+
483
+type RdmaStat struct {
484
+	Current              []*RdmaEntry `protobuf:"bytes,1,rep,name=current,proto3" json:"current,omitempty"`
485
+	Limit                []*RdmaEntry `protobuf:"bytes,2,rep,name=limit,proto3" json:"limit,omitempty"`
486
+	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
487
+	XXX_unrecognized     []byte       `json:"-"`
488
+	XXX_sizecache        int32        `json:"-"`
489
+}
490
+
491
+func (m *RdmaStat) Reset()      { *m = RdmaStat{} }
492
+func (*RdmaStat) ProtoMessage() {}
493
+func (*RdmaStat) Descriptor() ([]byte, []int) {
494
+	return fileDescriptor_a17b2d87c332bfaa, []int{10}
495
+}
496
+func (m *RdmaStat) XXX_Unmarshal(b []byte) error {
497
+	return m.Unmarshal(b)
498
+}
499
+func (m *RdmaStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
500
+	if deterministic {
501
+		return xxx_messageInfo_RdmaStat.Marshal(b, m, deterministic)
502
+	} else {
503
+		b = b[:cap(b)]
504
+		n, err := m.MarshalTo(b)
505
+		if err != nil {
506
+			return nil, err
507
+		}
508
+		return b[:n], nil
509
+	}
510
+}
511
+func (m *RdmaStat) XXX_Merge(src proto.Message) {
512
+	xxx_messageInfo_RdmaStat.Merge(m, src)
513
+}
514
+func (m *RdmaStat) XXX_Size() int {
515
+	return m.Size()
516
+}
517
+func (m *RdmaStat) XXX_DiscardUnknown() {
518
+	xxx_messageInfo_RdmaStat.DiscardUnknown(m)
519
+}
520
+
521
+var xxx_messageInfo_RdmaStat proto.InternalMessageInfo
522
+
523
+type RdmaEntry struct {
524
+	Device               string   `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
525
+	HcaHandles           uint32   `protobuf:"varint,2,opt,name=hca_handles,json=hcaHandles,proto3" json:"hca_handles,omitempty"`
526
+	HcaObjects           uint32   `protobuf:"varint,3,opt,name=hca_objects,json=hcaObjects,proto3" json:"hca_objects,omitempty"`
527
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
528
+	XXX_unrecognized     []byte   `json:"-"`
529
+	XXX_sizecache        int32    `json:"-"`
530
+}
531
+
532
+func (m *RdmaEntry) Reset()      { *m = RdmaEntry{} }
533
+func (*RdmaEntry) ProtoMessage() {}
534
+func (*RdmaEntry) Descriptor() ([]byte, []int) {
535
+	return fileDescriptor_a17b2d87c332bfaa, []int{11}
536
+}
537
+func (m *RdmaEntry) XXX_Unmarshal(b []byte) error {
538
+	return m.Unmarshal(b)
539
+}
540
+func (m *RdmaEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
541
+	if deterministic {
542
+		return xxx_messageInfo_RdmaEntry.Marshal(b, m, deterministic)
543
+	} else {
544
+		b = b[:cap(b)]
545
+		n, err := m.MarshalTo(b)
546
+		if err != nil {
547
+			return nil, err
548
+		}
549
+		return b[:n], nil
550
+	}
551
+}
552
+func (m *RdmaEntry) XXX_Merge(src proto.Message) {
553
+	xxx_messageInfo_RdmaEntry.Merge(m, src)
554
+}
555
+func (m *RdmaEntry) XXX_Size() int {
556
+	return m.Size()
557
+}
558
+func (m *RdmaEntry) XXX_DiscardUnknown() {
559
+	xxx_messageInfo_RdmaEntry.DiscardUnknown(m)
560
+}
561
+
562
+var xxx_messageInfo_RdmaEntry proto.InternalMessageInfo
563
+
564
+type NetworkStat struct {
565
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
566
+	RxBytes              uint64   `protobuf:"varint,2,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
567
+	RxPackets            uint64   `protobuf:"varint,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
568
+	RxErrors             uint64   `protobuf:"varint,4,opt,name=rx_errors,json=rxErrors,proto3" json:"rx_errors,omitempty"`
569
+	RxDropped            uint64   `protobuf:"varint,5,opt,name=rx_dropped,json=rxDropped,proto3" json:"rx_dropped,omitempty"`
570
+	TxBytes              uint64   `protobuf:"varint,6,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
571
+	TxPackets            uint64   `protobuf:"varint,7,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
572
+	TxErrors             uint64   `protobuf:"varint,8,opt,name=tx_errors,json=txErrors,proto3" json:"tx_errors,omitempty"`
573
+	TxDropped            uint64   `protobuf:"varint,9,opt,name=tx_dropped,json=txDropped,proto3" json:"tx_dropped,omitempty"`
574
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
575
+	XXX_unrecognized     []byte   `json:"-"`
576
+	XXX_sizecache        int32    `json:"-"`
577
+}
578
+
579
+func (m *NetworkStat) Reset()      { *m = NetworkStat{} }
580
+func (*NetworkStat) ProtoMessage() {}
581
+func (*NetworkStat) Descriptor() ([]byte, []int) {
582
+	return fileDescriptor_a17b2d87c332bfaa, []int{12}
583
+}
584
+func (m *NetworkStat) XXX_Unmarshal(b []byte) error {
585
+	return m.Unmarshal(b)
586
+}
587
+func (m *NetworkStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
588
+	if deterministic {
589
+		return xxx_messageInfo_NetworkStat.Marshal(b, m, deterministic)
590
+	} else {
591
+		b = b[:cap(b)]
592
+		n, err := m.MarshalTo(b)
593
+		if err != nil {
594
+			return nil, err
595
+		}
596
+		return b[:n], nil
597
+	}
598
+}
599
+func (m *NetworkStat) XXX_Merge(src proto.Message) {
600
+	xxx_messageInfo_NetworkStat.Merge(m, src)
601
+}
602
+func (m *NetworkStat) XXX_Size() int {
603
+	return m.Size()
604
+}
605
+func (m *NetworkStat) XXX_DiscardUnknown() {
606
+	xxx_messageInfo_NetworkStat.DiscardUnknown(m)
607
+}
608
+
609
+var xxx_messageInfo_NetworkStat proto.InternalMessageInfo
610
+
611
+// CgroupStats exports per-cgroup statistics.
612
+type CgroupStats struct {
613
+	// number of tasks sleeping
614
+	NrSleeping uint64 `protobuf:"varint,1,opt,name=nr_sleeping,json=nrSleeping,proto3" json:"nr_sleeping,omitempty"`
615
+	// number of tasks running
616
+	NrRunning uint64 `protobuf:"varint,2,opt,name=nr_running,json=nrRunning,proto3" json:"nr_running,omitempty"`
617
+	// number of tasks in stopped state
618
+	NrStopped uint64 `protobuf:"varint,3,opt,name=nr_stopped,json=nrStopped,proto3" json:"nr_stopped,omitempty"`
619
+	// number of tasks in uninterruptible state
620
+	NrUninterruptible uint64 `protobuf:"varint,4,opt,name=nr_uninterruptible,json=nrUninterruptible,proto3" json:"nr_uninterruptible,omitempty"`
621
+	// number of tasks waiting on IO
622
+	NrIoWait             uint64   `protobuf:"varint,5,opt,name=nr_io_wait,json=nrIoWait,proto3" json:"nr_io_wait,omitempty"`
623
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
624
+	XXX_unrecognized     []byte   `json:"-"`
625
+	XXX_sizecache        int32    `json:"-"`
626
+}
627
+
628
+func (m *CgroupStats) Reset()      { *m = CgroupStats{} }
629
+func (*CgroupStats) ProtoMessage() {}
630
+func (*CgroupStats) Descriptor() ([]byte, []int) {
631
+	return fileDescriptor_a17b2d87c332bfaa, []int{13}
632
+}
633
+func (m *CgroupStats) XXX_Unmarshal(b []byte) error {
634
+	return m.Unmarshal(b)
635
+}
636
+func (m *CgroupStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
637
+	if deterministic {
638
+		return xxx_messageInfo_CgroupStats.Marshal(b, m, deterministic)
639
+	} else {
640
+		b = b[:cap(b)]
641
+		n, err := m.MarshalTo(b)
642
+		if err != nil {
643
+			return nil, err
644
+		}
645
+		return b[:n], nil
646
+	}
647
+}
648
+func (m *CgroupStats) XXX_Merge(src proto.Message) {
649
+	xxx_messageInfo_CgroupStats.Merge(m, src)
650
+}
651
+func (m *CgroupStats) XXX_Size() int {
652
+	return m.Size()
653
+}
654
+func (m *CgroupStats) XXX_DiscardUnknown() {
655
+	xxx_messageInfo_CgroupStats.DiscardUnknown(m)
656
+}
657
+
658
+var xxx_messageInfo_CgroupStats proto.InternalMessageInfo
659
+
660
+func init() {
661
+	proto.RegisterType((*Metrics)(nil), "io.containerd.cgroups.v1.Metrics")
662
+	proto.RegisterType((*HugetlbStat)(nil), "io.containerd.cgroups.v1.HugetlbStat")
663
+	proto.RegisterType((*PidsStat)(nil), "io.containerd.cgroups.v1.PidsStat")
664
+	proto.RegisterType((*CPUStat)(nil), "io.containerd.cgroups.v1.CPUStat")
665
+	proto.RegisterType((*CPUUsage)(nil), "io.containerd.cgroups.v1.CPUUsage")
666
+	proto.RegisterType((*Throttle)(nil), "io.containerd.cgroups.v1.Throttle")
667
+	proto.RegisterType((*MemoryStat)(nil), "io.containerd.cgroups.v1.MemoryStat")
668
+	proto.RegisterType((*MemoryEntry)(nil), "io.containerd.cgroups.v1.MemoryEntry")
669
+	proto.RegisterType((*BlkIOStat)(nil), "io.containerd.cgroups.v1.BlkIOStat")
670
+	proto.RegisterType((*BlkIOEntry)(nil), "io.containerd.cgroups.v1.BlkIOEntry")
671
+	proto.RegisterType((*RdmaStat)(nil), "io.containerd.cgroups.v1.RdmaStat")
672
+	proto.RegisterType((*RdmaEntry)(nil), "io.containerd.cgroups.v1.RdmaEntry")
673
+	proto.RegisterType((*NetworkStat)(nil), "io.containerd.cgroups.v1.NetworkStat")
674
+	proto.RegisterType((*CgroupStats)(nil), "io.containerd.cgroups.v1.CgroupStats")
675
+}
676
+
677
+func init() {
678
+	proto.RegisterFile("github.com/containerd/cgroups/stats/v1/metrics.proto", fileDescriptor_a17b2d87c332bfaa)
679
+}
680
+
681
+var fileDescriptor_a17b2d87c332bfaa = []byte{
682
+	// 1669 bytes of a gzipped FileDescriptorProto
683
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x58, 0x4f, 0x73, 0x1b, 0xb7,
684
+	0x15, 0x0f, 0xc5, 0x95, 0xc8, 0x7d, 0x94, 0x6c, 0x09, 0xfe, 0xb7, 0x52, 0x1c, 0x51, 0xa1, 0xec,
685
+	0xd6, 0xad, 0xa7, 0xd2, 0x24, 0xed, 0x78, 0xea, 0x34, 0x99, 0x4e, 0xa4, 0x24, 0x63, 0x4f, 0xab,
686
+	0x9a, 0x59, 0x4a, 0x93, 0xf6, 0xb4, 0x03, 0x2e, 0xe1, 0x25, 0xac, 0xe5, 0x62, 0x83, 0xc5, 0x52,
687
+	0x74, 0x4f, 0x3d, 0x74, 0xa6, 0xa7, 0x7e, 0xa0, 0x7e, 0x83, 0x1c, 0x7b, 0xe9, 0x4c, 0x7b, 0xd1,
688
+	0x34, 0xfc, 0x1c, 0x3d, 0x74, 0x80, 0x87, 0xfd, 0x43, 0xc7, 0xb2, 0xc2, 0xdb, 0xe2, 0xe1, 0xf7,
689
+	0x7e, 0xef, 0xe1, 0xe1, 0x07, 0xe0, 0x91, 0xf0, 0xab, 0x88, 0xab, 0x71, 0x3e, 0x3c, 0x08, 0xc5,
690
+	0xe4, 0x30, 0x14, 0x89, 0xa2, 0x3c, 0x61, 0x72, 0x74, 0x18, 0x46, 0x52, 0xe4, 0x69, 0x76, 0x98,
691
+	0x29, 0xaa, 0xb2, 0xc3, 0xe9, 0x47, 0x87, 0x13, 0xa6, 0x24, 0x0f, 0xb3, 0x83, 0x54, 0x0a, 0x25,
692
+	0x88, 0xc7, 0xc5, 0x41, 0x85, 0x3e, 0xb0, 0xe8, 0x83, 0xe9, 0x47, 0x3b, 0xb7, 0x23, 0x11, 0x09,
693
+	0x03, 0x3a, 0xd4, 0x5f, 0x88, 0xef, 0xfd, 0xaf, 0x09, 0xad, 0x13, 0x64, 0x20, 0xbf, 0x85, 0xd6,
694
+	0x38, 0x8f, 0x98, 0x8a, 0x87, 0x5e, 0x63, 0xaf, 0xf9, 0xa8, 0xf3, 0xf1, 0xc3, 0x83, 0xab, 0xd8,
695
+	0x0e, 0x9e, 0x21, 0x70, 0xa0, 0xa8, 0xf2, 0x0b, 0x2f, 0xf2, 0x04, 0x9c, 0x94, 0x8f, 0x32, 0x6f,
696
+	0x65, 0xaf, 0xf1, 0xa8, 0xf3, 0x71, 0xef, 0x6a, 0xef, 0x3e, 0x1f, 0x65, 0xc6, 0xd5, 0xe0, 0xc9,
697
+	0xa7, 0xd0, 0x0c, 0xd3, 0xdc, 0x6b, 0x1a, 0xb7, 0x0f, 0xaf, 0x76, 0x3b, 0xee, 0x9f, 0x69, 0xaf,
698
+	0xa3, 0xd6, 0xfc, 0xb2, 0xdb, 0x3c, 0xee, 0x9f, 0xf9, 0xda, 0x8d, 0x7c, 0x0a, 0x6b, 0x13, 0x36,
699
+	0x11, 0xf2, 0xb5, 0xe7, 0x18, 0x82, 0x07, 0x57, 0x13, 0x9c, 0x18, 0x9c, 0x89, 0x6c, 0x7d, 0xc8,
700
+	0x53, 0x58, 0x1d, 0xc6, 0xe7, 0x5c, 0x78, 0xab, 0xc6, 0x79, 0xff, 0x6a, 0xe7, 0xa3, 0xf8, 0xfc,
701
+	0xf9, 0x0b, 0xe3, 0x8b, 0x1e, 0x7a, 0xb9, 0x72, 0x34, 0xa1, 0xde, 0xda, 0x75, 0xcb, 0xf5, 0x47,
702
+	0x13, 0x8a, 0xcb, 0xd5, 0x78, 0x5d, 0xe7, 0x84, 0xa9, 0x0b, 0x21, 0xcf, 0xbd, 0xd6, 0x75, 0x75,
703
+	0xfe, 0x03, 0x02, 0xb1, 0xce, 0xd6, 0x8b, 0x3c, 0x83, 0x75, 0x84, 0x04, 0x46, 0x05, 0x5e, 0xdb,
704
+	0x24, 0xf0, 0x0e, 0x96, 0x63, 0xf3, 0xa9, 0x49, 0x32, 0xbf, 0x13, 0x56, 0x83, 0xde, 0x39, 0x74,
705
+	0x6a, 0x3b, 0x49, 0x6e, 0xc3, 0x6a, 0x9e, 0xd1, 0x88, 0x79, 0x8d, 0xbd, 0xc6, 0x23, 0xc7, 0xc7,
706
+	0x01, 0xd9, 0x84, 0xe6, 0x84, 0xce, 0xcc, 0xae, 0x3a, 0xbe, 0xfe, 0x24, 0x1e, 0xb4, 0x5e, 0x52,
707
+	0x1e, 0x87, 0x89, 0x32, 0x9b, 0xe6, 0xf8, 0xc5, 0x90, 0xec, 0x40, 0x3b, 0xa5, 0x11, 0xcb, 0xf8,
708
+	0x9f, 0x99, 0xd9, 0x0e, 0xd7, 0x2f, 0xc7, 0xbd, 0x4f, 0xa0, 0x5d, 0x6c, 0xbc, 0x66, 0x08, 0x73,
709
+	0x29, 0x59, 0xa2, 0x6c, 0xac, 0x62, 0xa8, 0x73, 0x88, 0xf9, 0x84, 0x2b, 0x1b, 0x0f, 0x07, 0xbd,
710
+	0xbf, 0x35, 0xa0, 0x65, 0xb7, 0x9f, 0xfc, 0xba, 0x9e, 0xe5, 0x3b, 0x0b, 0x7f, 0xdc, 0x3f, 0x3b,
711
+	0xd3, 0xc8, 0x62, 0x25, 0x47, 0x00, 0x6a, 0x2c, 0x85, 0x52, 0x31, 0x4f, 0xa2, 0xeb, 0x65, 0x7a,
712
+	0x8a, 0x58, 0xe6, 0xd7, 0xbc, 0x7a, 0xdf, 0x42, 0xbb, 0xa0, 0xd5, 0xb9, 0x2a, 0xa1, 0x68, 0x5c,
713
+	0xd4, 0xcb, 0x0c, 0xc8, 0x5d, 0x58, 0x3b, 0x67, 0x32, 0x61, 0xb1, 0x5d, 0x82, 0x1d, 0x11, 0x02,
714
+	0x4e, 0x9e, 0x31, 0x69, 0x4b, 0x66, 0xbe, 0xc9, 0x3e, 0xb4, 0x52, 0x26, 0x03, 0x2d, 0x7f, 0x67,
715
+	0xaf, 0xf9, 0xc8, 0x39, 0x82, 0xf9, 0x65, 0x77, 0xad, 0xcf, 0xa4, 0x96, 0xf7, 0x5a, 0xca, 0xe4,
716
+	0x71, 0x9a, 0xf7, 0x66, 0xd0, 0x2e, 0x52, 0xd1, 0x85, 0x4b, 0x99, 0xe4, 0x62, 0x94, 0x15, 0x85,
717
+	0xb3, 0x43, 0xf2, 0x18, 0xb6, 0x6c, 0x9a, 0x6c, 0x14, 0x14, 0x18, 0xcc, 0x60, 0xb3, 0x9c, 0xe8,
718
+	0x5b, 0xf0, 0x43, 0xb8, 0x51, 0x81, 0x15, 0x9f, 0x30, 0x9b, 0xd5, 0x46, 0x69, 0x3d, 0xe5, 0x13,
719
+	0xd6, 0xfb, 0x4f, 0x07, 0xa0, 0x3a, 0x34, 0x7a, 0xbd, 0x21, 0x0d, 0xc7, 0xa5, 0x3e, 0xcc, 0x80,
720
+	0x6c, 0x43, 0x53, 0x66, 0x36, 0x14, 0x9e, 0x4d, 0x7f, 0x30, 0xf0, 0xb5, 0x8d, 0xfc, 0x04, 0xda,
721
+	0x32, 0xcb, 0x02, 0x7d, 0x41, 0x60, 0x80, 0xa3, 0xce, 0xfc, 0xb2, 0xdb, 0xf2, 0x07, 0x03, 0x2d,
722
+	0x3b, 0xbf, 0x25, 0xb3, 0x4c, 0x7f, 0x90, 0x2e, 0x74, 0x26, 0x34, 0x4d, 0xd9, 0x28, 0x78, 0xc9,
723
+	0x63, 0x54, 0x8e, 0xe3, 0x03, 0x9a, 0xbe, 0xe2, 0xb1, 0xa9, 0xf4, 0x88, 0x4b, 0xf5, 0xda, 0x1c,
724
+	0x53, 0xc7, 0xc7, 0x01, 0xb9, 0x0f, 0xee, 0x85, 0xe4, 0x8a, 0x0d, 0x69, 0x78, 0x6e, 0x8e, 0xa1,
725
+	0xe3, 0x57, 0x06, 0xe2, 0x41, 0x3b, 0x8d, 0x82, 0x34, 0x0a, 0x78, 0xe2, 0xb5, 0x70, 0x27, 0xd2,
726
+	0xa8, 0x1f, 0x3d, 0x4f, 0xc8, 0x0e, 0xb8, 0x38, 0x23, 0x72, 0x65, 0x4e, 0x8f, 0x2e, 0x63, 0xd4,
727
+	0x8f, 0x5e, 0xe4, 0x8a, 0x6c, 0x1b, 0xaf, 0x97, 0x34, 0x8f, 0x95, 0xe7, 0x16, 0x53, 0x5f, 0xe9,
728
+	0x21, 0xd9, 0x83, 0xf5, 0x34, 0x0a, 0x26, 0xf4, 0x95, 0x9d, 0x06, 0x4c, 0x33, 0x8d, 0x4e, 0xe8,
729
+	0x2b, 0x44, 0xec, 0xc3, 0x06, 0x4f, 0x68, 0xa8, 0xf8, 0x94, 0x05, 0x34, 0x11, 0x89, 0xd7, 0x31,
730
+	0x90, 0xf5, 0xc2, 0xf8, 0x79, 0x22, 0x12, 0xbd, 0xd8, 0x3a, 0x64, 0x1d, 0x59, 0x6a, 0x80, 0x3a,
731
+	0x8b, 0xa9, 0xc7, 0xc6, 0x22, 0x8b, 0xa9, 0x48, 0xc5, 0x62, 0x20, 0x37, 0xea, 0x2c, 0x06, 0xb0,
732
+	0x07, 0x9d, 0x3c, 0x61, 0x53, 0x1e, 0x2a, 0x3a, 0x8c, 0x99, 0x77, 0xd3, 0x00, 0xea, 0x26, 0xf2,
733
+	0x09, 0x6c, 0x8f, 0x39, 0x93, 0x54, 0x86, 0x63, 0x1e, 0xd2, 0x38, 0xc0, 0x2b, 0x31, 0xc0, 0xe3,
734
+	0xb7, 0x69, 0xf0, 0xf7, 0xea, 0x00, 0x54, 0xc2, 0xef, 0xf5, 0x34, 0x79, 0x02, 0x0b, 0x53, 0x41,
735
+	0x76, 0x41, 0x53, 0xeb, 0xb9, 0x65, 0x3c, 0xef, 0xd4, 0xa7, 0x07, 0x17, 0x34, 0x45, 0xbf, 0x2e,
736
+	0x74, 0xcc, 0x29, 0x09, 0x50, 0x48, 0x04, 0xd3, 0x36, 0xa6, 0x63, 0xa3, 0xa6, 0x9f, 0x81, 0x8b,
737
+	0x00, 0xad, 0xa9, 0x5b, 0x46, 0x33, 0xeb, 0xf3, 0xcb, 0x6e, 0xfb, 0x54, 0x1b, 0xb5, 0xb0, 0xda,
738
+	0x66, 0xda, 0xcf, 0x32, 0xf2, 0x04, 0x6e, 0x94, 0x50, 0xd4, 0xd8, 0x6d, 0x83, 0xdf, 0x9c, 0x5f,
739
+	0x76, 0xd7, 0x0b, 0xbc, 0x11, 0xda, 0x7a, 0xe1, 0x63, 0xd4, 0xf6, 0x73, 0xd8, 0x42, 0xbf, 0xba,
740
+	0xe6, 0xee, 0x98, 0x4c, 0x6e, 0x9a, 0x89, 0x93, 0x4a, 0x78, 0x65, 0xbe, 0x28, 0xbf, 0xbb, 0xb5,
741
+	0x7c, 0xbf, 0x30, 0x1a, 0xfc, 0x29, 0xa0, 0x4f, 0x50, 0x29, 0xf1, 0x9e, 0x01, 0x61, 0x6e, 0xdf,
742
+	0x94, 0x72, 0xdc, 0x2f, 0xb2, 0x2d, 0x45, 0xe9, 0xe1, 0x96, 0x18, 0x6b, 0x1f, 0x95, 0xf9, 0xb0,
743
+	0x60, 0xab, 0xf4, 0xb9, 0x8d, 0x9b, 0x5f, 0xa2, 0xb4, 0x48, 0x1f, 0xd4, 0xb8, 0x50, 0x8b, 0x3b,
744
+	0x0b, 0x28, 0x54, 0xe3, 0x63, 0x20, 0x25, 0xaa, 0x52, 0xed, 0xfb, 0xb5, 0x85, 0xf6, 0x2b, 0xe9,
745
+	0x1e, 0xc0, 0x2d, 0x04, 0x2f, 0x0a, 0xf8, 0xbe, 0x41, 0x63, 0xbd, 0x9e, 0xd7, 0x55, 0x5c, 0x16,
746
+	0xb1, 0x8e, 0xfe, 0xa0, 0xc6, 0xfd, 0x79, 0x85, 0xfd, 0x21, 0xb7, 0x29, 0xf9, 0xee, 0x5b, 0xb8,
747
+	0x4d, 0xd1, 0xdf, 0xe4, 0x36, 0xe8, 0xee, 0x0f, 0xb8, 0x0d, 0xf6, 0x71, 0x81, 0xad, 0x8b, 0x7d,
748
+	0xcf, 0x5e, 0x7b, 0x7a, 0xe2, 0xac, 0xa6, 0xf8, 0xdf, 0x14, 0x4f, 0xc7, 0x87, 0xd7, 0x3d, 0x99,
749
+	0xa8, 0xf5, 0x2f, 0x13, 0x25, 0x5f, 0x17, 0xaf, 0xc7, 0x53, 0x70, 0xb4, 0xca, 0xbd, 0xde, 0x32,
750
+	0xbe, 0xc6, 0x85, 0x7c, 0x56, 0x3e, 0x09, 0xfb, 0xcb, 0x38, 0x17, 0x2f, 0xc7, 0x00, 0x00, 0xbf,
751
+	0x02, 0x15, 0xa6, 0xde, 0x83, 0x25, 0x28, 0x8e, 0x36, 0xe6, 0x97, 0x5d, 0xf7, 0x77, 0xc6, 0xf9,
752
+	0xf4, 0xb8, 0xef, 0xbb, 0xc8, 0x73, 0x1a, 0xa6, 0x3d, 0x06, 0x9d, 0x1a, 0xb0, 0x7a, 0x77, 0x1b,
753
+	0xb5, 0x77, 0xb7, 0xea, 0x08, 0x56, 0xde, 0xd2, 0x11, 0x34, 0xdf, 0xda, 0x11, 0x38, 0x0b, 0x1d,
754
+	0x41, 0xef, 0x5f, 0xab, 0xe0, 0x96, 0xad, 0x13, 0xa1, 0xb0, 0xc3, 0x45, 0x90, 0x31, 0x39, 0xe5,
755
+	0x21, 0x0b, 0x86, 0xaf, 0x15, 0xcb, 0x02, 0xc9, 0xc2, 0x5c, 0x66, 0x7c, 0xca, 0x6c, 0xdb, 0xf9,
756
+	0xe0, 0x9a, 0x1e, 0x0c, 0x6b, 0x73, 0x8f, 0x8b, 0x01, 0xd2, 0x1c, 0x69, 0x16, 0xbf, 0x20, 0x21,
757
+	0x7f, 0x84, 0x3b, 0x55, 0x88, 0x51, 0x8d, 0x7d, 0x65, 0x09, 0xf6, 0x5b, 0x25, 0xfb, 0xa8, 0x62,
758
+	0x3e, 0x85, 0x5b, 0x5c, 0x04, 0xdf, 0xe6, 0x2c, 0x5f, 0xe0, 0x6d, 0x2e, 0xc1, 0xbb, 0xc5, 0xc5,
759
+	0xd7, 0xc6, 0xbf, 0x62, 0x0d, 0x60, 0xbb, 0x56, 0x12, 0xfd, 0x16, 0xd7, 0xb8, 0x9d, 0x25, 0xb8,
760
+	0xef, 0x96, 0x39, 0xeb, 0xb7, 0xbb, 0x0a, 0xf0, 0x27, 0xb8, 0xcb, 0x45, 0x70, 0x41, 0xb9, 0x7a,
761
+	0x93, 0x7d, 0x75, 0xb9, 0x8a, 0x7c, 0x43, 0xb9, 0x5a, 0xa4, 0xc6, 0x8a, 0x4c, 0x98, 0x8c, 0x16,
762
+	0x2a, 0xb2, 0xb6, 0x5c, 0x45, 0x4e, 0x8c, 0x7f, 0xc5, 0xda, 0x87, 0x2d, 0x2e, 0xde, 0xcc, 0xb5,
763
+	0xb5, 0x04, 0xe7, 0x4d, 0x2e, 0x16, 0xf3, 0xfc, 0x1a, 0xb6, 0x32, 0x16, 0x2a, 0x21, 0xeb, 0x6a,
764
+	0x6b, 0x2f, 0xc1, 0xb8, 0x69, 0xdd, 0x4b, 0xca, 0xde, 0x14, 0xa0, 0x9a, 0x27, 0x37, 0x60, 0x45,
765
+	0xa4, 0xe6, 0xe8, 0xb8, 0xfe, 0x8a, 0x48, 0x75, 0x0f, 0x38, 0xd2, 0xd7, 0x0e, 0x1e, 0x1c, 0xd7,
766
+	0xb7, 0x23, 0x7d, 0x9e, 0x26, 0xf4, 0x95, 0x28, 0x9a, 0x40, 0x1c, 0x18, 0x2b, 0x4f, 0x84, 0xb4,
767
+	0x67, 0x07, 0x07, 0xda, 0x3a, 0xa5, 0x71, 0xce, 0x8a, 0x9e, 0xc7, 0x0c, 0x7a, 0x7f, 0x6d, 0x40,
768
+	0xbb, 0xf8, 0x41, 0x41, 0x3e, 0xab, 0xb7, 0xd1, 0xcd, 0x77, 0xff, 0x7e, 0xd1, 0x4e, 0xb8, 0x98,
769
+	0xb2, 0xd7, 0x7e, 0x5a, 0xf5, 0xda, 0x3f, 0xda, 0xd9, 0x36, 0xe4, 0x0c, 0xdc, 0xd2, 0x56, 0x5b,
770
+	0x6d, 0x63, 0x61, 0xb5, 0x5d, 0xe8, 0x8c, 0x43, 0x1a, 0x8c, 0x69, 0x32, 0x8a, 0x19, 0x76, 0x88,
771
+	0x1b, 0x3e, 0x8c, 0x43, 0xfa, 0x0c, 0x2d, 0x05, 0x40, 0x0c, 0x5f, 0xb1, 0x50, 0x65, 0xa6, 0x28,
772
+	0x08, 0x78, 0x81, 0x96, 0xde, 0xdf, 0x57, 0xa0, 0x53, 0xfb, 0x0d, 0xa4, 0x7b, 0xe8, 0x84, 0x4e,
773
+	0x8a, 0x38, 0xe6, 0x5b, 0x77, 0x6c, 0x72, 0x86, 0x77, 0x89, 0xbd, 0xa6, 0x5a, 0x72, 0x66, 0x2e,
774
+	0x05, 0xf2, 0x01, 0x80, 0x9c, 0x05, 0x29, 0x0d, 0xcf, 0x99, 0xa5, 0x77, 0x7c, 0x57, 0xce, 0xfa,
775
+	0x68, 0x20, 0xef, 0x83, 0x2b, 0x67, 0x01, 0x93, 0x52, 0xc8, 0xcc, 0xd6, 0xbe, 0x2d, 0x67, 0x5f,
776
+	0x9a, 0xb1, 0xf5, 0x1d, 0x49, 0xa1, 0x7b, 0x01, 0xbb, 0x07, 0xae, 0x9c, 0x7d, 0x81, 0x06, 0x1d,
777
+	0x55, 0x15, 0x51, 0xb1, 0xf5, 0x6c, 0xa9, 0x2a, 0xaa, 0xaa, 0xa2, 0x62, 0xeb, 0xe9, 0xaa, 0x7a,
778
+	0x54, 0x55, 0x46, 0xc5, 0xee, 0xb3, 0xad, 0x6a, 0x51, 0x55, 0x15, 0xd5, 0x2d, 0x7c, 0x6d, 0xd4,
779
+	0xde, 0x3f, 0x1a, 0xd0, 0xa9, 0xfd, 0x9a, 0xd3, 0x05, 0x4c, 0x64, 0x90, 0xc5, 0x8c, 0xa5, 0xfa,
780
+	0x27, 0x0d, 0xde, 0xdd, 0x90, 0xc8, 0x81, 0xb5, 0x68, 0xbe, 0x44, 0x06, 0x32, 0x4f, 0x92, 0xe2,
781
+	0x27, 0x8f, 0xe3, 0xbb, 0x89, 0xf4, 0xd1, 0x60, 0xa7, 0x33, 0x85, 0xe1, 0x9a, 0xc5, 0xf4, 0x00,
782
+	0x0d, 0xe4, 0x17, 0x40, 0x12, 0x19, 0xe4, 0x09, 0x4f, 0x14, 0x93, 0x32, 0x4f, 0x15, 0x1f, 0x96,
783
+	0xed, 0xf9, 0x56, 0x22, 0xcf, 0x16, 0x27, 0xc8, 0x7d, 0xc3, 0x66, 0x2f, 0x1b, 0x5b, 0xb2, 0x76,
784
+	0x22, 0x9f, 0x9b, 0x9b, 0xe3, 0xc8, 0xfb, 0xee, 0xfb, 0xdd, 0xf7, 0xfe, 0xfd, 0xfd, 0xee, 0x7b,
785
+	0x7f, 0x99, 0xef, 0x36, 0xbe, 0x9b, 0xef, 0x36, 0xfe, 0x39, 0xdf, 0x6d, 0xfc, 0x77, 0xbe, 0xdb,
786
+	0x18, 0xae, 0x99, 0x3f, 0x23, 0x7e, 0xf9, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x78, 0x66,
787
+	0x06, 0xf4, 0x10, 0x00, 0x00,
788
+}
789
+
790
+func (m *Metrics) Marshal() (dAtA []byte, err error) {
791
+	size := m.Size()
792
+	dAtA = make([]byte, size)
793
+	n, err := m.MarshalTo(dAtA)
794
+	if err != nil {
795
+		return nil, err
796
+	}
797
+	return dAtA[:n], nil
798
+}
799
+
800
+func (m *Metrics) MarshalTo(dAtA []byte) (int, error) {
801
+	var i int
802
+	_ = i
803
+	var l int
804
+	_ = l
805
+	if len(m.Hugetlb) > 0 {
806
+		for _, msg := range m.Hugetlb {
807
+			dAtA[i] = 0xa
808
+			i++
809
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
810
+			n, err := msg.MarshalTo(dAtA[i:])
811
+			if err != nil {
812
+				return 0, err
813
+			}
814
+			i += n
815
+		}
816
+	}
817
+	if m.Pids != nil {
818
+		dAtA[i] = 0x12
819
+		i++
820
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Pids.Size()))
821
+		n1, err := m.Pids.MarshalTo(dAtA[i:])
822
+		if err != nil {
823
+			return 0, err
824
+		}
825
+		i += n1
826
+	}
827
+	if m.CPU != nil {
828
+		dAtA[i] = 0x1a
829
+		i++
830
+		i = encodeVarintMetrics(dAtA, i, uint64(m.CPU.Size()))
831
+		n2, err := m.CPU.MarshalTo(dAtA[i:])
832
+		if err != nil {
833
+			return 0, err
834
+		}
835
+		i += n2
836
+	}
837
+	if m.Memory != nil {
838
+		dAtA[i] = 0x22
839
+		i++
840
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Memory.Size()))
841
+		n3, err := m.Memory.MarshalTo(dAtA[i:])
842
+		if err != nil {
843
+			return 0, err
844
+		}
845
+		i += n3
846
+	}
847
+	if m.Blkio != nil {
848
+		dAtA[i] = 0x2a
849
+		i++
850
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Blkio.Size()))
851
+		n4, err := m.Blkio.MarshalTo(dAtA[i:])
852
+		if err != nil {
853
+			return 0, err
854
+		}
855
+		i += n4
856
+	}
857
+	if m.Rdma != nil {
858
+		dAtA[i] = 0x32
859
+		i++
860
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Rdma.Size()))
861
+		n5, err := m.Rdma.MarshalTo(dAtA[i:])
862
+		if err != nil {
863
+			return 0, err
864
+		}
865
+		i += n5
866
+	}
867
+	if len(m.Network) > 0 {
868
+		for _, msg := range m.Network {
869
+			dAtA[i] = 0x3a
870
+			i++
871
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
872
+			n, err := msg.MarshalTo(dAtA[i:])
873
+			if err != nil {
874
+				return 0, err
875
+			}
876
+			i += n
877
+		}
878
+	}
879
+	if m.CgroupStats != nil {
880
+		dAtA[i] = 0x42
881
+		i++
882
+		i = encodeVarintMetrics(dAtA, i, uint64(m.CgroupStats.Size()))
883
+		n6, err := m.CgroupStats.MarshalTo(dAtA[i:])
884
+		if err != nil {
885
+			return 0, err
886
+		}
887
+		i += n6
888
+	}
889
+	if m.XXX_unrecognized != nil {
890
+		i += copy(dAtA[i:], m.XXX_unrecognized)
891
+	}
892
+	return i, nil
893
+}
894
+
895
+func (m *HugetlbStat) Marshal() (dAtA []byte, err error) {
896
+	size := m.Size()
897
+	dAtA = make([]byte, size)
898
+	n, err := m.MarshalTo(dAtA)
899
+	if err != nil {
900
+		return nil, err
901
+	}
902
+	return dAtA[:n], nil
903
+}
904
+
905
+func (m *HugetlbStat) MarshalTo(dAtA []byte) (int, error) {
906
+	var i int
907
+	_ = i
908
+	var l int
909
+	_ = l
910
+	if m.Usage != 0 {
911
+		dAtA[i] = 0x8
912
+		i++
913
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage))
914
+	}
915
+	if m.Max != 0 {
916
+		dAtA[i] = 0x10
917
+		i++
918
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Max))
919
+	}
920
+	if m.Failcnt != 0 {
921
+		dAtA[i] = 0x18
922
+		i++
923
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Failcnt))
924
+	}
925
+	if len(m.Pagesize) > 0 {
926
+		dAtA[i] = 0x22
927
+		i++
928
+		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Pagesize)))
929
+		i += copy(dAtA[i:], m.Pagesize)
930
+	}
931
+	if m.XXX_unrecognized != nil {
932
+		i += copy(dAtA[i:], m.XXX_unrecognized)
933
+	}
934
+	return i, nil
935
+}
936
+
937
+func (m *PidsStat) Marshal() (dAtA []byte, err error) {
938
+	size := m.Size()
939
+	dAtA = make([]byte, size)
940
+	n, err := m.MarshalTo(dAtA)
941
+	if err != nil {
942
+		return nil, err
943
+	}
944
+	return dAtA[:n], nil
945
+}
946
+
947
+func (m *PidsStat) MarshalTo(dAtA []byte) (int, error) {
948
+	var i int
949
+	_ = i
950
+	var l int
951
+	_ = l
952
+	if m.Current != 0 {
953
+		dAtA[i] = 0x8
954
+		i++
955
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Current))
956
+	}
957
+	if m.Limit != 0 {
958
+		dAtA[i] = 0x10
959
+		i++
960
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Limit))
961
+	}
962
+	if m.XXX_unrecognized != nil {
963
+		i += copy(dAtA[i:], m.XXX_unrecognized)
964
+	}
965
+	return i, nil
966
+}
967
+
968
+func (m *CPUStat) Marshal() (dAtA []byte, err error) {
969
+	size := m.Size()
970
+	dAtA = make([]byte, size)
971
+	n, err := m.MarshalTo(dAtA)
972
+	if err != nil {
973
+		return nil, err
974
+	}
975
+	return dAtA[:n], nil
976
+}
977
+
978
+func (m *CPUStat) MarshalTo(dAtA []byte) (int, error) {
979
+	var i int
980
+	_ = i
981
+	var l int
982
+	_ = l
983
+	if m.Usage != nil {
984
+		dAtA[i] = 0xa
985
+		i++
986
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage.Size()))
987
+		n7, err := m.Usage.MarshalTo(dAtA[i:])
988
+		if err != nil {
989
+			return 0, err
990
+		}
991
+		i += n7
992
+	}
993
+	if m.Throttling != nil {
994
+		dAtA[i] = 0x12
995
+		i++
996
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Throttling.Size()))
997
+		n8, err := m.Throttling.MarshalTo(dAtA[i:])
998
+		if err != nil {
999
+			return 0, err
1000
+		}
1001
+		i += n8
1002
+	}
1003
+	if m.XXX_unrecognized != nil {
1004
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1005
+	}
1006
+	return i, nil
1007
+}
1008
+
1009
+func (m *CPUUsage) Marshal() (dAtA []byte, err error) {
1010
+	size := m.Size()
1011
+	dAtA = make([]byte, size)
1012
+	n, err := m.MarshalTo(dAtA)
1013
+	if err != nil {
1014
+		return nil, err
1015
+	}
1016
+	return dAtA[:n], nil
1017
+}
1018
+
1019
+func (m *CPUUsage) MarshalTo(dAtA []byte) (int, error) {
1020
+	var i int
1021
+	_ = i
1022
+	var l int
1023
+	_ = l
1024
+	if m.Total != 0 {
1025
+		dAtA[i] = 0x8
1026
+		i++
1027
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Total))
1028
+	}
1029
+	if m.Kernel != 0 {
1030
+		dAtA[i] = 0x10
1031
+		i++
1032
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Kernel))
1033
+	}
1034
+	if m.User != 0 {
1035
+		dAtA[i] = 0x18
1036
+		i++
1037
+		i = encodeVarintMetrics(dAtA, i, uint64(m.User))
1038
+	}
1039
+	if len(m.PerCPU) > 0 {
1040
+		dAtA10 := make([]byte, len(m.PerCPU)*10)
1041
+		var j9 int
1042
+		for _, num := range m.PerCPU {
1043
+			for num >= 1<<7 {
1044
+				dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80)
1045
+				num >>= 7
1046
+				j9++
1047
+			}
1048
+			dAtA10[j9] = uint8(num)
1049
+			j9++
1050
+		}
1051
+		dAtA[i] = 0x22
1052
+		i++
1053
+		i = encodeVarintMetrics(dAtA, i, uint64(j9))
1054
+		i += copy(dAtA[i:], dAtA10[:j9])
1055
+	}
1056
+	if m.XXX_unrecognized != nil {
1057
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1058
+	}
1059
+	return i, nil
1060
+}
1061
+
1062
+func (m *Throttle) Marshal() (dAtA []byte, err error) {
1063
+	size := m.Size()
1064
+	dAtA = make([]byte, size)
1065
+	n, err := m.MarshalTo(dAtA)
1066
+	if err != nil {
1067
+		return nil, err
1068
+	}
1069
+	return dAtA[:n], nil
1070
+}
1071
+
1072
+func (m *Throttle) MarshalTo(dAtA []byte) (int, error) {
1073
+	var i int
1074
+	_ = i
1075
+	var l int
1076
+	_ = l
1077
+	if m.Periods != 0 {
1078
+		dAtA[i] = 0x8
1079
+		i++
1080
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Periods))
1081
+	}
1082
+	if m.ThrottledPeriods != 0 {
1083
+		dAtA[i] = 0x10
1084
+		i++
1085
+		i = encodeVarintMetrics(dAtA, i, uint64(m.ThrottledPeriods))
1086
+	}
1087
+	if m.ThrottledTime != 0 {
1088
+		dAtA[i] = 0x18
1089
+		i++
1090
+		i = encodeVarintMetrics(dAtA, i, uint64(m.ThrottledTime))
1091
+	}
1092
+	if m.XXX_unrecognized != nil {
1093
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1094
+	}
1095
+	return i, nil
1096
+}
1097
+
1098
+func (m *MemoryStat) Marshal() (dAtA []byte, err error) {
1099
+	size := m.Size()
1100
+	dAtA = make([]byte, size)
1101
+	n, err := m.MarshalTo(dAtA)
1102
+	if err != nil {
1103
+		return nil, err
1104
+	}
1105
+	return dAtA[:n], nil
1106
+}
1107
+
1108
+func (m *MemoryStat) MarshalTo(dAtA []byte) (int, error) {
1109
+	var i int
1110
+	_ = i
1111
+	var l int
1112
+	_ = l
1113
+	if m.Cache != 0 {
1114
+		dAtA[i] = 0x8
1115
+		i++
1116
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Cache))
1117
+	}
1118
+	if m.RSS != 0 {
1119
+		dAtA[i] = 0x10
1120
+		i++
1121
+		i = encodeVarintMetrics(dAtA, i, uint64(m.RSS))
1122
+	}
1123
+	if m.RSSHuge != 0 {
1124
+		dAtA[i] = 0x18
1125
+		i++
1126
+		i = encodeVarintMetrics(dAtA, i, uint64(m.RSSHuge))
1127
+	}
1128
+	if m.MappedFile != 0 {
1129
+		dAtA[i] = 0x20
1130
+		i++
1131
+		i = encodeVarintMetrics(dAtA, i, uint64(m.MappedFile))
1132
+	}
1133
+	if m.Dirty != 0 {
1134
+		dAtA[i] = 0x28
1135
+		i++
1136
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Dirty))
1137
+	}
1138
+	if m.Writeback != 0 {
1139
+		dAtA[i] = 0x30
1140
+		i++
1141
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Writeback))
1142
+	}
1143
+	if m.PgPgIn != 0 {
1144
+		dAtA[i] = 0x38
1145
+		i++
1146
+		i = encodeVarintMetrics(dAtA, i, uint64(m.PgPgIn))
1147
+	}
1148
+	if m.PgPgOut != 0 {
1149
+		dAtA[i] = 0x40
1150
+		i++
1151
+		i = encodeVarintMetrics(dAtA, i, uint64(m.PgPgOut))
1152
+	}
1153
+	if m.PgFault != 0 {
1154
+		dAtA[i] = 0x48
1155
+		i++
1156
+		i = encodeVarintMetrics(dAtA, i, uint64(m.PgFault))
1157
+	}
1158
+	if m.PgMajFault != 0 {
1159
+		dAtA[i] = 0x50
1160
+		i++
1161
+		i = encodeVarintMetrics(dAtA, i, uint64(m.PgMajFault))
1162
+	}
1163
+	if m.InactiveAnon != 0 {
1164
+		dAtA[i] = 0x58
1165
+		i++
1166
+		i = encodeVarintMetrics(dAtA, i, uint64(m.InactiveAnon))
1167
+	}
1168
+	if m.ActiveAnon != 0 {
1169
+		dAtA[i] = 0x60
1170
+		i++
1171
+		i = encodeVarintMetrics(dAtA, i, uint64(m.ActiveAnon))
1172
+	}
1173
+	if m.InactiveFile != 0 {
1174
+		dAtA[i] = 0x68
1175
+		i++
1176
+		i = encodeVarintMetrics(dAtA, i, uint64(m.InactiveFile))
1177
+	}
1178
+	if m.ActiveFile != 0 {
1179
+		dAtA[i] = 0x70
1180
+		i++
1181
+		i = encodeVarintMetrics(dAtA, i, uint64(m.ActiveFile))
1182
+	}
1183
+	if m.Unevictable != 0 {
1184
+		dAtA[i] = 0x78
1185
+		i++
1186
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Unevictable))
1187
+	}
1188
+	if m.HierarchicalMemoryLimit != 0 {
1189
+		dAtA[i] = 0x80
1190
+		i++
1191
+		dAtA[i] = 0x1
1192
+		i++
1193
+		i = encodeVarintMetrics(dAtA, i, uint64(m.HierarchicalMemoryLimit))
1194
+	}
1195
+	if m.HierarchicalSwapLimit != 0 {
1196
+		dAtA[i] = 0x88
1197
+		i++
1198
+		dAtA[i] = 0x1
1199
+		i++
1200
+		i = encodeVarintMetrics(dAtA, i, uint64(m.HierarchicalSwapLimit))
1201
+	}
1202
+	if m.TotalCache != 0 {
1203
+		dAtA[i] = 0x90
1204
+		i++
1205
+		dAtA[i] = 0x1
1206
+		i++
1207
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalCache))
1208
+	}
1209
+	if m.TotalRSS != 0 {
1210
+		dAtA[i] = 0x98
1211
+		i++
1212
+		dAtA[i] = 0x1
1213
+		i++
1214
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalRSS))
1215
+	}
1216
+	if m.TotalRSSHuge != 0 {
1217
+		dAtA[i] = 0xa0
1218
+		i++
1219
+		dAtA[i] = 0x1
1220
+		i++
1221
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalRSSHuge))
1222
+	}
1223
+	if m.TotalMappedFile != 0 {
1224
+		dAtA[i] = 0xa8
1225
+		i++
1226
+		dAtA[i] = 0x1
1227
+		i++
1228
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalMappedFile))
1229
+	}
1230
+	if m.TotalDirty != 0 {
1231
+		dAtA[i] = 0xb0
1232
+		i++
1233
+		dAtA[i] = 0x1
1234
+		i++
1235
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalDirty))
1236
+	}
1237
+	if m.TotalWriteback != 0 {
1238
+		dAtA[i] = 0xb8
1239
+		i++
1240
+		dAtA[i] = 0x1
1241
+		i++
1242
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalWriteback))
1243
+	}
1244
+	if m.TotalPgPgIn != 0 {
1245
+		dAtA[i] = 0xc0
1246
+		i++
1247
+		dAtA[i] = 0x1
1248
+		i++
1249
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgPgIn))
1250
+	}
1251
+	if m.TotalPgPgOut != 0 {
1252
+		dAtA[i] = 0xc8
1253
+		i++
1254
+		dAtA[i] = 0x1
1255
+		i++
1256
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgPgOut))
1257
+	}
1258
+	if m.TotalPgFault != 0 {
1259
+		dAtA[i] = 0xd0
1260
+		i++
1261
+		dAtA[i] = 0x1
1262
+		i++
1263
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgFault))
1264
+	}
1265
+	if m.TotalPgMajFault != 0 {
1266
+		dAtA[i] = 0xd8
1267
+		i++
1268
+		dAtA[i] = 0x1
1269
+		i++
1270
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalPgMajFault))
1271
+	}
1272
+	if m.TotalInactiveAnon != 0 {
1273
+		dAtA[i] = 0xe0
1274
+		i++
1275
+		dAtA[i] = 0x1
1276
+		i++
1277
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalInactiveAnon))
1278
+	}
1279
+	if m.TotalActiveAnon != 0 {
1280
+		dAtA[i] = 0xe8
1281
+		i++
1282
+		dAtA[i] = 0x1
1283
+		i++
1284
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalActiveAnon))
1285
+	}
1286
+	if m.TotalInactiveFile != 0 {
1287
+		dAtA[i] = 0xf0
1288
+		i++
1289
+		dAtA[i] = 0x1
1290
+		i++
1291
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalInactiveFile))
1292
+	}
1293
+	if m.TotalActiveFile != 0 {
1294
+		dAtA[i] = 0xf8
1295
+		i++
1296
+		dAtA[i] = 0x1
1297
+		i++
1298
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalActiveFile))
1299
+	}
1300
+	if m.TotalUnevictable != 0 {
1301
+		dAtA[i] = 0x80
1302
+		i++
1303
+		dAtA[i] = 0x2
1304
+		i++
1305
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TotalUnevictable))
1306
+	}
1307
+	if m.Usage != nil {
1308
+		dAtA[i] = 0x8a
1309
+		i++
1310
+		dAtA[i] = 0x2
1311
+		i++
1312
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage.Size()))
1313
+		n11, err := m.Usage.MarshalTo(dAtA[i:])
1314
+		if err != nil {
1315
+			return 0, err
1316
+		}
1317
+		i += n11
1318
+	}
1319
+	if m.Swap != nil {
1320
+		dAtA[i] = 0x92
1321
+		i++
1322
+		dAtA[i] = 0x2
1323
+		i++
1324
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Swap.Size()))
1325
+		n12, err := m.Swap.MarshalTo(dAtA[i:])
1326
+		if err != nil {
1327
+			return 0, err
1328
+		}
1329
+		i += n12
1330
+	}
1331
+	if m.Kernel != nil {
1332
+		dAtA[i] = 0x9a
1333
+		i++
1334
+		dAtA[i] = 0x2
1335
+		i++
1336
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Kernel.Size()))
1337
+		n13, err := m.Kernel.MarshalTo(dAtA[i:])
1338
+		if err != nil {
1339
+			return 0, err
1340
+		}
1341
+		i += n13
1342
+	}
1343
+	if m.KernelTCP != nil {
1344
+		dAtA[i] = 0xa2
1345
+		i++
1346
+		dAtA[i] = 0x2
1347
+		i++
1348
+		i = encodeVarintMetrics(dAtA, i, uint64(m.KernelTCP.Size()))
1349
+		n14, err := m.KernelTCP.MarshalTo(dAtA[i:])
1350
+		if err != nil {
1351
+			return 0, err
1352
+		}
1353
+		i += n14
1354
+	}
1355
+	if m.XXX_unrecognized != nil {
1356
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1357
+	}
1358
+	return i, nil
1359
+}
1360
+
1361
+func (m *MemoryEntry) Marshal() (dAtA []byte, err error) {
1362
+	size := m.Size()
1363
+	dAtA = make([]byte, size)
1364
+	n, err := m.MarshalTo(dAtA)
1365
+	if err != nil {
1366
+		return nil, err
1367
+	}
1368
+	return dAtA[:n], nil
1369
+}
1370
+
1371
+func (m *MemoryEntry) MarshalTo(dAtA []byte) (int, error) {
1372
+	var i int
1373
+	_ = i
1374
+	var l int
1375
+	_ = l
1376
+	if m.Limit != 0 {
1377
+		dAtA[i] = 0x8
1378
+		i++
1379
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Limit))
1380
+	}
1381
+	if m.Usage != 0 {
1382
+		dAtA[i] = 0x10
1383
+		i++
1384
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Usage))
1385
+	}
1386
+	if m.Max != 0 {
1387
+		dAtA[i] = 0x18
1388
+		i++
1389
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Max))
1390
+	}
1391
+	if m.Failcnt != 0 {
1392
+		dAtA[i] = 0x20
1393
+		i++
1394
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Failcnt))
1395
+	}
1396
+	if m.XXX_unrecognized != nil {
1397
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1398
+	}
1399
+	return i, nil
1400
+}
1401
+
1402
+func (m *BlkIOStat) Marshal() (dAtA []byte, err error) {
1403
+	size := m.Size()
1404
+	dAtA = make([]byte, size)
1405
+	n, err := m.MarshalTo(dAtA)
1406
+	if err != nil {
1407
+		return nil, err
1408
+	}
1409
+	return dAtA[:n], nil
1410
+}
1411
+
1412
+func (m *BlkIOStat) MarshalTo(dAtA []byte) (int, error) {
1413
+	var i int
1414
+	_ = i
1415
+	var l int
1416
+	_ = l
1417
+	if len(m.IoServiceBytesRecursive) > 0 {
1418
+		for _, msg := range m.IoServiceBytesRecursive {
1419
+			dAtA[i] = 0xa
1420
+			i++
1421
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1422
+			n, err := msg.MarshalTo(dAtA[i:])
1423
+			if err != nil {
1424
+				return 0, err
1425
+			}
1426
+			i += n
1427
+		}
1428
+	}
1429
+	if len(m.IoServicedRecursive) > 0 {
1430
+		for _, msg := range m.IoServicedRecursive {
1431
+			dAtA[i] = 0x12
1432
+			i++
1433
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1434
+			n, err := msg.MarshalTo(dAtA[i:])
1435
+			if err != nil {
1436
+				return 0, err
1437
+			}
1438
+			i += n
1439
+		}
1440
+	}
1441
+	if len(m.IoQueuedRecursive) > 0 {
1442
+		for _, msg := range m.IoQueuedRecursive {
1443
+			dAtA[i] = 0x1a
1444
+			i++
1445
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1446
+			n, err := msg.MarshalTo(dAtA[i:])
1447
+			if err != nil {
1448
+				return 0, err
1449
+			}
1450
+			i += n
1451
+		}
1452
+	}
1453
+	if len(m.IoServiceTimeRecursive) > 0 {
1454
+		for _, msg := range m.IoServiceTimeRecursive {
1455
+			dAtA[i] = 0x22
1456
+			i++
1457
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1458
+			n, err := msg.MarshalTo(dAtA[i:])
1459
+			if err != nil {
1460
+				return 0, err
1461
+			}
1462
+			i += n
1463
+		}
1464
+	}
1465
+	if len(m.IoWaitTimeRecursive) > 0 {
1466
+		for _, msg := range m.IoWaitTimeRecursive {
1467
+			dAtA[i] = 0x2a
1468
+			i++
1469
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1470
+			n, err := msg.MarshalTo(dAtA[i:])
1471
+			if err != nil {
1472
+				return 0, err
1473
+			}
1474
+			i += n
1475
+		}
1476
+	}
1477
+	if len(m.IoMergedRecursive) > 0 {
1478
+		for _, msg := range m.IoMergedRecursive {
1479
+			dAtA[i] = 0x32
1480
+			i++
1481
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1482
+			n, err := msg.MarshalTo(dAtA[i:])
1483
+			if err != nil {
1484
+				return 0, err
1485
+			}
1486
+			i += n
1487
+		}
1488
+	}
1489
+	if len(m.IoTimeRecursive) > 0 {
1490
+		for _, msg := range m.IoTimeRecursive {
1491
+			dAtA[i] = 0x3a
1492
+			i++
1493
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1494
+			n, err := msg.MarshalTo(dAtA[i:])
1495
+			if err != nil {
1496
+				return 0, err
1497
+			}
1498
+			i += n
1499
+		}
1500
+	}
1501
+	if len(m.SectorsRecursive) > 0 {
1502
+		for _, msg := range m.SectorsRecursive {
1503
+			dAtA[i] = 0x42
1504
+			i++
1505
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1506
+			n, err := msg.MarshalTo(dAtA[i:])
1507
+			if err != nil {
1508
+				return 0, err
1509
+			}
1510
+			i += n
1511
+		}
1512
+	}
1513
+	if m.XXX_unrecognized != nil {
1514
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1515
+	}
1516
+	return i, nil
1517
+}
1518
+
1519
+func (m *BlkIOEntry) Marshal() (dAtA []byte, err error) {
1520
+	size := m.Size()
1521
+	dAtA = make([]byte, size)
1522
+	n, err := m.MarshalTo(dAtA)
1523
+	if err != nil {
1524
+		return nil, err
1525
+	}
1526
+	return dAtA[:n], nil
1527
+}
1528
+
1529
+func (m *BlkIOEntry) MarshalTo(dAtA []byte) (int, error) {
1530
+	var i int
1531
+	_ = i
1532
+	var l int
1533
+	_ = l
1534
+	if len(m.Op) > 0 {
1535
+		dAtA[i] = 0xa
1536
+		i++
1537
+		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Op)))
1538
+		i += copy(dAtA[i:], m.Op)
1539
+	}
1540
+	if len(m.Device) > 0 {
1541
+		dAtA[i] = 0x12
1542
+		i++
1543
+		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Device)))
1544
+		i += copy(dAtA[i:], m.Device)
1545
+	}
1546
+	if m.Major != 0 {
1547
+		dAtA[i] = 0x18
1548
+		i++
1549
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Major))
1550
+	}
1551
+	if m.Minor != 0 {
1552
+		dAtA[i] = 0x20
1553
+		i++
1554
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Minor))
1555
+	}
1556
+	if m.Value != 0 {
1557
+		dAtA[i] = 0x28
1558
+		i++
1559
+		i = encodeVarintMetrics(dAtA, i, uint64(m.Value))
1560
+	}
1561
+	if m.XXX_unrecognized != nil {
1562
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1563
+	}
1564
+	return i, nil
1565
+}
1566
+
1567
+func (m *RdmaStat) Marshal() (dAtA []byte, err error) {
1568
+	size := m.Size()
1569
+	dAtA = make([]byte, size)
1570
+	n, err := m.MarshalTo(dAtA)
1571
+	if err != nil {
1572
+		return nil, err
1573
+	}
1574
+	return dAtA[:n], nil
1575
+}
1576
+
1577
+func (m *RdmaStat) MarshalTo(dAtA []byte) (int, error) {
1578
+	var i int
1579
+	_ = i
1580
+	var l int
1581
+	_ = l
1582
+	if len(m.Current) > 0 {
1583
+		for _, msg := range m.Current {
1584
+			dAtA[i] = 0xa
1585
+			i++
1586
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1587
+			n, err := msg.MarshalTo(dAtA[i:])
1588
+			if err != nil {
1589
+				return 0, err
1590
+			}
1591
+			i += n
1592
+		}
1593
+	}
1594
+	if len(m.Limit) > 0 {
1595
+		for _, msg := range m.Limit {
1596
+			dAtA[i] = 0x12
1597
+			i++
1598
+			i = encodeVarintMetrics(dAtA, i, uint64(msg.Size()))
1599
+			n, err := msg.MarshalTo(dAtA[i:])
1600
+			if err != nil {
1601
+				return 0, err
1602
+			}
1603
+			i += n
1604
+		}
1605
+	}
1606
+	if m.XXX_unrecognized != nil {
1607
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1608
+	}
1609
+	return i, nil
1610
+}
1611
+
1612
+func (m *RdmaEntry) Marshal() (dAtA []byte, err error) {
1613
+	size := m.Size()
1614
+	dAtA = make([]byte, size)
1615
+	n, err := m.MarshalTo(dAtA)
1616
+	if err != nil {
1617
+		return nil, err
1618
+	}
1619
+	return dAtA[:n], nil
1620
+}
1621
+
1622
+func (m *RdmaEntry) MarshalTo(dAtA []byte) (int, error) {
1623
+	var i int
1624
+	_ = i
1625
+	var l int
1626
+	_ = l
1627
+	if len(m.Device) > 0 {
1628
+		dAtA[i] = 0xa
1629
+		i++
1630
+		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Device)))
1631
+		i += copy(dAtA[i:], m.Device)
1632
+	}
1633
+	if m.HcaHandles != 0 {
1634
+		dAtA[i] = 0x10
1635
+		i++
1636
+		i = encodeVarintMetrics(dAtA, i, uint64(m.HcaHandles))
1637
+	}
1638
+	if m.HcaObjects != 0 {
1639
+		dAtA[i] = 0x18
1640
+		i++
1641
+		i = encodeVarintMetrics(dAtA, i, uint64(m.HcaObjects))
1642
+	}
1643
+	if m.XXX_unrecognized != nil {
1644
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1645
+	}
1646
+	return i, nil
1647
+}
1648
+
1649
+func (m *NetworkStat) Marshal() (dAtA []byte, err error) {
1650
+	size := m.Size()
1651
+	dAtA = make([]byte, size)
1652
+	n, err := m.MarshalTo(dAtA)
1653
+	if err != nil {
1654
+		return nil, err
1655
+	}
1656
+	return dAtA[:n], nil
1657
+}
1658
+
1659
+func (m *NetworkStat) MarshalTo(dAtA []byte) (int, error) {
1660
+	var i int
1661
+	_ = i
1662
+	var l int
1663
+	_ = l
1664
+	if len(m.Name) > 0 {
1665
+		dAtA[i] = 0xa
1666
+		i++
1667
+		i = encodeVarintMetrics(dAtA, i, uint64(len(m.Name)))
1668
+		i += copy(dAtA[i:], m.Name)
1669
+	}
1670
+	if m.RxBytes != 0 {
1671
+		dAtA[i] = 0x10
1672
+		i++
1673
+		i = encodeVarintMetrics(dAtA, i, uint64(m.RxBytes))
1674
+	}
1675
+	if m.RxPackets != 0 {
1676
+		dAtA[i] = 0x18
1677
+		i++
1678
+		i = encodeVarintMetrics(dAtA, i, uint64(m.RxPackets))
1679
+	}
1680
+	if m.RxErrors != 0 {
1681
+		dAtA[i] = 0x20
1682
+		i++
1683
+		i = encodeVarintMetrics(dAtA, i, uint64(m.RxErrors))
1684
+	}
1685
+	if m.RxDropped != 0 {
1686
+		dAtA[i] = 0x28
1687
+		i++
1688
+		i = encodeVarintMetrics(dAtA, i, uint64(m.RxDropped))
1689
+	}
1690
+	if m.TxBytes != 0 {
1691
+		dAtA[i] = 0x30
1692
+		i++
1693
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TxBytes))
1694
+	}
1695
+	if m.TxPackets != 0 {
1696
+		dAtA[i] = 0x38
1697
+		i++
1698
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TxPackets))
1699
+	}
1700
+	if m.TxErrors != 0 {
1701
+		dAtA[i] = 0x40
1702
+		i++
1703
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TxErrors))
1704
+	}
1705
+	if m.TxDropped != 0 {
1706
+		dAtA[i] = 0x48
1707
+		i++
1708
+		i = encodeVarintMetrics(dAtA, i, uint64(m.TxDropped))
1709
+	}
1710
+	if m.XXX_unrecognized != nil {
1711
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1712
+	}
1713
+	return i, nil
1714
+}
1715
+
1716
+func (m *CgroupStats) Marshal() (dAtA []byte, err error) {
1717
+	size := m.Size()
1718
+	dAtA = make([]byte, size)
1719
+	n, err := m.MarshalTo(dAtA)
1720
+	if err != nil {
1721
+		return nil, err
1722
+	}
1723
+	return dAtA[:n], nil
1724
+}
1725
+
1726
+func (m *CgroupStats) MarshalTo(dAtA []byte) (int, error) {
1727
+	var i int
1728
+	_ = i
1729
+	var l int
1730
+	_ = l
1731
+	if m.NrSleeping != 0 {
1732
+		dAtA[i] = 0x8
1733
+		i++
1734
+		i = encodeVarintMetrics(dAtA, i, uint64(m.NrSleeping))
1735
+	}
1736
+	if m.NrRunning != 0 {
1737
+		dAtA[i] = 0x10
1738
+		i++
1739
+		i = encodeVarintMetrics(dAtA, i, uint64(m.NrRunning))
1740
+	}
1741
+	if m.NrStopped != 0 {
1742
+		dAtA[i] = 0x18
1743
+		i++
1744
+		i = encodeVarintMetrics(dAtA, i, uint64(m.NrStopped))
1745
+	}
1746
+	if m.NrUninterruptible != 0 {
1747
+		dAtA[i] = 0x20
1748
+		i++
1749
+		i = encodeVarintMetrics(dAtA, i, uint64(m.NrUninterruptible))
1750
+	}
1751
+	if m.NrIoWait != 0 {
1752
+		dAtA[i] = 0x28
1753
+		i++
1754
+		i = encodeVarintMetrics(dAtA, i, uint64(m.NrIoWait))
1755
+	}
1756
+	if m.XXX_unrecognized != nil {
1757
+		i += copy(dAtA[i:], m.XXX_unrecognized)
1758
+	}
1759
+	return i, nil
1760
+}
1761
+
1762
+func encodeVarintMetrics(dAtA []byte, offset int, v uint64) int {
1763
+	for v >= 1<<7 {
1764
+		dAtA[offset] = uint8(v&0x7f | 0x80)
1765
+		v >>= 7
1766
+		offset++
1767
+	}
1768
+	dAtA[offset] = uint8(v)
1769
+	return offset + 1
1770
+}
1771
+func (m *Metrics) Size() (n int) {
1772
+	if m == nil {
1773
+		return 0
1774
+	}
1775
+	var l int
1776
+	_ = l
1777
+	if len(m.Hugetlb) > 0 {
1778
+		for _, e := range m.Hugetlb {
1779
+			l = e.Size()
1780
+			n += 1 + l + sovMetrics(uint64(l))
1781
+		}
1782
+	}
1783
+	if m.Pids != nil {
1784
+		l = m.Pids.Size()
1785
+		n += 1 + l + sovMetrics(uint64(l))
1786
+	}
1787
+	if m.CPU != nil {
1788
+		l = m.CPU.Size()
1789
+		n += 1 + l + sovMetrics(uint64(l))
1790
+	}
1791
+	if m.Memory != nil {
1792
+		l = m.Memory.Size()
1793
+		n += 1 + l + sovMetrics(uint64(l))
1794
+	}
1795
+	if m.Blkio != nil {
1796
+		l = m.Blkio.Size()
1797
+		n += 1 + l + sovMetrics(uint64(l))
1798
+	}
1799
+	if m.Rdma != nil {
1800
+		l = m.Rdma.Size()
1801
+		n += 1 + l + sovMetrics(uint64(l))
1802
+	}
1803
+	if len(m.Network) > 0 {
1804
+		for _, e := range m.Network {
1805
+			l = e.Size()
1806
+			n += 1 + l + sovMetrics(uint64(l))
1807
+		}
1808
+	}
1809
+	if m.CgroupStats != nil {
1810
+		l = m.CgroupStats.Size()
1811
+		n += 1 + l + sovMetrics(uint64(l))
1812
+	}
1813
+	if m.XXX_unrecognized != nil {
1814
+		n += len(m.XXX_unrecognized)
1815
+	}
1816
+	return n
1817
+}
1818
+
1819
+func (m *HugetlbStat) Size() (n int) {
1820
+	if m == nil {
1821
+		return 0
1822
+	}
1823
+	var l int
1824
+	_ = l
1825
+	if m.Usage != 0 {
1826
+		n += 1 + sovMetrics(uint64(m.Usage))
1827
+	}
1828
+	if m.Max != 0 {
1829
+		n += 1 + sovMetrics(uint64(m.Max))
1830
+	}
1831
+	if m.Failcnt != 0 {
1832
+		n += 1 + sovMetrics(uint64(m.Failcnt))
1833
+	}
1834
+	l = len(m.Pagesize)
1835
+	if l > 0 {
1836
+		n += 1 + l + sovMetrics(uint64(l))
1837
+	}
1838
+	if m.XXX_unrecognized != nil {
1839
+		n += len(m.XXX_unrecognized)
1840
+	}
1841
+	return n
1842
+}
1843
+
1844
+func (m *PidsStat) Size() (n int) {
1845
+	if m == nil {
1846
+		return 0
1847
+	}
1848
+	var l int
1849
+	_ = l
1850
+	if m.Current != 0 {
1851
+		n += 1 + sovMetrics(uint64(m.Current))
1852
+	}
1853
+	if m.Limit != 0 {
1854
+		n += 1 + sovMetrics(uint64(m.Limit))
1855
+	}
1856
+	if m.XXX_unrecognized != nil {
1857
+		n += len(m.XXX_unrecognized)
1858
+	}
1859
+	return n
1860
+}
1861
+
1862
+func (m *CPUStat) Size() (n int) {
1863
+	if m == nil {
1864
+		return 0
1865
+	}
1866
+	var l int
1867
+	_ = l
1868
+	if m.Usage != nil {
1869
+		l = m.Usage.Size()
1870
+		n += 1 + l + sovMetrics(uint64(l))
1871
+	}
1872
+	if m.Throttling != nil {
1873
+		l = m.Throttling.Size()
1874
+		n += 1 + l + sovMetrics(uint64(l))
1875
+	}
1876
+	if m.XXX_unrecognized != nil {
1877
+		n += len(m.XXX_unrecognized)
1878
+	}
1879
+	return n
1880
+}
1881
+
1882
+func (m *CPUUsage) Size() (n int) {
1883
+	if m == nil {
1884
+		return 0
1885
+	}
1886
+	var l int
1887
+	_ = l
1888
+	if m.Total != 0 {
1889
+		n += 1 + sovMetrics(uint64(m.Total))
1890
+	}
1891
+	if m.Kernel != 0 {
1892
+		n += 1 + sovMetrics(uint64(m.Kernel))
1893
+	}
1894
+	if m.User != 0 {
1895
+		n += 1 + sovMetrics(uint64(m.User))
1896
+	}
1897
+	if len(m.PerCPU) > 0 {
1898
+		l = 0
1899
+		for _, e := range m.PerCPU {
1900
+			l += sovMetrics(uint64(e))
1901
+		}
1902
+		n += 1 + sovMetrics(uint64(l)) + l
1903
+	}
1904
+	if m.XXX_unrecognized != nil {
1905
+		n += len(m.XXX_unrecognized)
1906
+	}
1907
+	return n
1908
+}
1909
+
1910
+func (m *Throttle) Size() (n int) {
1911
+	if m == nil {
1912
+		return 0
1913
+	}
1914
+	var l int
1915
+	_ = l
1916
+	if m.Periods != 0 {
1917
+		n += 1 + sovMetrics(uint64(m.Periods))
1918
+	}
1919
+	if m.ThrottledPeriods != 0 {
1920
+		n += 1 + sovMetrics(uint64(m.ThrottledPeriods))
1921
+	}
1922
+	if m.ThrottledTime != 0 {
1923
+		n += 1 + sovMetrics(uint64(m.ThrottledTime))
1924
+	}
1925
+	if m.XXX_unrecognized != nil {
1926
+		n += len(m.XXX_unrecognized)
1927
+	}
1928
+	return n
1929
+}
1930
+
1931
+func (m *MemoryStat) Size() (n int) {
1932
+	if m == nil {
1933
+		return 0
1934
+	}
1935
+	var l int
1936
+	_ = l
1937
+	if m.Cache != 0 {
1938
+		n += 1 + sovMetrics(uint64(m.Cache))
1939
+	}
1940
+	if m.RSS != 0 {
1941
+		n += 1 + sovMetrics(uint64(m.RSS))
1942
+	}
1943
+	if m.RSSHuge != 0 {
1944
+		n += 1 + sovMetrics(uint64(m.RSSHuge))
1945
+	}
1946
+	if m.MappedFile != 0 {
1947
+		n += 1 + sovMetrics(uint64(m.MappedFile))
1948
+	}
1949
+	if m.Dirty != 0 {
1950
+		n += 1 + sovMetrics(uint64(m.Dirty))
1951
+	}
1952
+	if m.Writeback != 0 {
1953
+		n += 1 + sovMetrics(uint64(m.Writeback))
1954
+	}
1955
+	if m.PgPgIn != 0 {
1956
+		n += 1 + sovMetrics(uint64(m.PgPgIn))
1957
+	}
1958
+	if m.PgPgOut != 0 {
1959
+		n += 1 + sovMetrics(uint64(m.PgPgOut))
1960
+	}
1961
+	if m.PgFault != 0 {
1962
+		n += 1 + sovMetrics(uint64(m.PgFault))
1963
+	}
1964
+	if m.PgMajFault != 0 {
1965
+		n += 1 + sovMetrics(uint64(m.PgMajFault))
1966
+	}
1967
+	if m.InactiveAnon != 0 {
1968
+		n += 1 + sovMetrics(uint64(m.InactiveAnon))
1969
+	}
1970
+	if m.ActiveAnon != 0 {
1971
+		n += 1 + sovMetrics(uint64(m.ActiveAnon))
1972
+	}
1973
+	if m.InactiveFile != 0 {
1974
+		n += 1 + sovMetrics(uint64(m.InactiveFile))
1975
+	}
1976
+	if m.ActiveFile != 0 {
1977
+		n += 1 + sovMetrics(uint64(m.ActiveFile))
1978
+	}
1979
+	if m.Unevictable != 0 {
1980
+		n += 1 + sovMetrics(uint64(m.Unevictable))
1981
+	}
1982
+	if m.HierarchicalMemoryLimit != 0 {
1983
+		n += 2 + sovMetrics(uint64(m.HierarchicalMemoryLimit))
1984
+	}
1985
+	if m.HierarchicalSwapLimit != 0 {
1986
+		n += 2 + sovMetrics(uint64(m.HierarchicalSwapLimit))
1987
+	}
1988
+	if m.TotalCache != 0 {
1989
+		n += 2 + sovMetrics(uint64(m.TotalCache))
1990
+	}
1991
+	if m.TotalRSS != 0 {
1992
+		n += 2 + sovMetrics(uint64(m.TotalRSS))
1993
+	}
1994
+	if m.TotalRSSHuge != 0 {
1995
+		n += 2 + sovMetrics(uint64(m.TotalRSSHuge))
1996
+	}
1997
+	if m.TotalMappedFile != 0 {
1998
+		n += 2 + sovMetrics(uint64(m.TotalMappedFile))
1999
+	}
2000
+	if m.TotalDirty != 0 {
2001
+		n += 2 + sovMetrics(uint64(m.TotalDirty))
2002
+	}
2003
+	if m.TotalWriteback != 0 {
2004
+		n += 2 + sovMetrics(uint64(m.TotalWriteback))
2005
+	}
2006
+	if m.TotalPgPgIn != 0 {
2007
+		n += 2 + sovMetrics(uint64(m.TotalPgPgIn))
2008
+	}
2009
+	if m.TotalPgPgOut != 0 {
2010
+		n += 2 + sovMetrics(uint64(m.TotalPgPgOut))
2011
+	}
2012
+	if m.TotalPgFault != 0 {
2013
+		n += 2 + sovMetrics(uint64(m.TotalPgFault))
2014
+	}
2015
+	if m.TotalPgMajFault != 0 {
2016
+		n += 2 + sovMetrics(uint64(m.TotalPgMajFault))
2017
+	}
2018
+	if m.TotalInactiveAnon != 0 {
2019
+		n += 2 + sovMetrics(uint64(m.TotalInactiveAnon))
2020
+	}
2021
+	if m.TotalActiveAnon != 0 {
2022
+		n += 2 + sovMetrics(uint64(m.TotalActiveAnon))
2023
+	}
2024
+	if m.TotalInactiveFile != 0 {
2025
+		n += 2 + sovMetrics(uint64(m.TotalInactiveFile))
2026
+	}
2027
+	if m.TotalActiveFile != 0 {
2028
+		n += 2 + sovMetrics(uint64(m.TotalActiveFile))
2029
+	}
2030
+	if m.TotalUnevictable != 0 {
2031
+		n += 2 + sovMetrics(uint64(m.TotalUnevictable))
2032
+	}
2033
+	if m.Usage != nil {
2034
+		l = m.Usage.Size()
2035
+		n += 2 + l + sovMetrics(uint64(l))
2036
+	}
2037
+	if m.Swap != nil {
2038
+		l = m.Swap.Size()
2039
+		n += 2 + l + sovMetrics(uint64(l))
2040
+	}
2041
+	if m.Kernel != nil {
2042
+		l = m.Kernel.Size()
2043
+		n += 2 + l + sovMetrics(uint64(l))
2044
+	}
2045
+	if m.KernelTCP != nil {
2046
+		l = m.KernelTCP.Size()
2047
+		n += 2 + l + sovMetrics(uint64(l))
2048
+	}
2049
+	if m.XXX_unrecognized != nil {
2050
+		n += len(m.XXX_unrecognized)
2051
+	}
2052
+	return n
2053
+}
2054
+
2055
+func (m *MemoryEntry) Size() (n int) {
2056
+	if m == nil {
2057
+		return 0
2058
+	}
2059
+	var l int
2060
+	_ = l
2061
+	if m.Limit != 0 {
2062
+		n += 1 + sovMetrics(uint64(m.Limit))
2063
+	}
2064
+	if m.Usage != 0 {
2065
+		n += 1 + sovMetrics(uint64(m.Usage))
2066
+	}
2067
+	if m.Max != 0 {
2068
+		n += 1 + sovMetrics(uint64(m.Max))
2069
+	}
2070
+	if m.Failcnt != 0 {
2071
+		n += 1 + sovMetrics(uint64(m.Failcnt))
2072
+	}
2073
+	if m.XXX_unrecognized != nil {
2074
+		n += len(m.XXX_unrecognized)
2075
+	}
2076
+	return n
2077
+}
2078
+
2079
+func (m *BlkIOStat) Size() (n int) {
2080
+	if m == nil {
2081
+		return 0
2082
+	}
2083
+	var l int
2084
+	_ = l
2085
+	if len(m.IoServiceBytesRecursive) > 0 {
2086
+		for _, e := range m.IoServiceBytesRecursive {
2087
+			l = e.Size()
2088
+			n += 1 + l + sovMetrics(uint64(l))
2089
+		}
2090
+	}
2091
+	if len(m.IoServicedRecursive) > 0 {
2092
+		for _, e := range m.IoServicedRecursive {
2093
+			l = e.Size()
2094
+			n += 1 + l + sovMetrics(uint64(l))
2095
+		}
2096
+	}
2097
+	if len(m.IoQueuedRecursive) > 0 {
2098
+		for _, e := range m.IoQueuedRecursive {
2099
+			l = e.Size()
2100
+			n += 1 + l + sovMetrics(uint64(l))
2101
+		}
2102
+	}
2103
+	if len(m.IoServiceTimeRecursive) > 0 {
2104
+		for _, e := range m.IoServiceTimeRecursive {
2105
+			l = e.Size()
2106
+			n += 1 + l + sovMetrics(uint64(l))
2107
+		}
2108
+	}
2109
+	if len(m.IoWaitTimeRecursive) > 0 {
2110
+		for _, e := range m.IoWaitTimeRecursive {
2111
+			l = e.Size()
2112
+			n += 1 + l + sovMetrics(uint64(l))
2113
+		}
2114
+	}
2115
+	if len(m.IoMergedRecursive) > 0 {
2116
+		for _, e := range m.IoMergedRecursive {
2117
+			l = e.Size()
2118
+			n += 1 + l + sovMetrics(uint64(l))
2119
+		}
2120
+	}
2121
+	if len(m.IoTimeRecursive) > 0 {
2122
+		for _, e := range m.IoTimeRecursive {
2123
+			l = e.Size()
2124
+			n += 1 + l + sovMetrics(uint64(l))
2125
+		}
2126
+	}
2127
+	if len(m.SectorsRecursive) > 0 {
2128
+		for _, e := range m.SectorsRecursive {
2129
+			l = e.Size()
2130
+			n += 1 + l + sovMetrics(uint64(l))
2131
+		}
2132
+	}
2133
+	if m.XXX_unrecognized != nil {
2134
+		n += len(m.XXX_unrecognized)
2135
+	}
2136
+	return n
2137
+}
2138
+
2139
+func (m *BlkIOEntry) Size() (n int) {
2140
+	if m == nil {
2141
+		return 0
2142
+	}
2143
+	var l int
2144
+	_ = l
2145
+	l = len(m.Op)
2146
+	if l > 0 {
2147
+		n += 1 + l + sovMetrics(uint64(l))
2148
+	}
2149
+	l = len(m.Device)
2150
+	if l > 0 {
2151
+		n += 1 + l + sovMetrics(uint64(l))
2152
+	}
2153
+	if m.Major != 0 {
2154
+		n += 1 + sovMetrics(uint64(m.Major))
2155
+	}
2156
+	if m.Minor != 0 {
2157
+		n += 1 + sovMetrics(uint64(m.Minor))
2158
+	}
2159
+	if m.Value != 0 {
2160
+		n += 1 + sovMetrics(uint64(m.Value))
2161
+	}
2162
+	if m.XXX_unrecognized != nil {
2163
+		n += len(m.XXX_unrecognized)
2164
+	}
2165
+	return n
2166
+}
2167
+
2168
+func (m *RdmaStat) Size() (n int) {
2169
+	if m == nil {
2170
+		return 0
2171
+	}
2172
+	var l int
2173
+	_ = l
2174
+	if len(m.Current) > 0 {
2175
+		for _, e := range m.Current {
2176
+			l = e.Size()
2177
+			n += 1 + l + sovMetrics(uint64(l))
2178
+		}
2179
+	}
2180
+	if len(m.Limit) > 0 {
2181
+		for _, e := range m.Limit {
2182
+			l = e.Size()
2183
+			n += 1 + l + sovMetrics(uint64(l))
2184
+		}
2185
+	}
2186
+	if m.XXX_unrecognized != nil {
2187
+		n += len(m.XXX_unrecognized)
2188
+	}
2189
+	return n
2190
+}
2191
+
2192
+func (m *RdmaEntry) Size() (n int) {
2193
+	if m == nil {
2194
+		return 0
2195
+	}
2196
+	var l int
2197
+	_ = l
2198
+	l = len(m.Device)
2199
+	if l > 0 {
2200
+		n += 1 + l + sovMetrics(uint64(l))
2201
+	}
2202
+	if m.HcaHandles != 0 {
2203
+		n += 1 + sovMetrics(uint64(m.HcaHandles))
2204
+	}
2205
+	if m.HcaObjects != 0 {
2206
+		n += 1 + sovMetrics(uint64(m.HcaObjects))
2207
+	}
2208
+	if m.XXX_unrecognized != nil {
2209
+		n += len(m.XXX_unrecognized)
2210
+	}
2211
+	return n
2212
+}
2213
+
2214
+func (m *NetworkStat) Size() (n int) {
2215
+	if m == nil {
2216
+		return 0
2217
+	}
2218
+	var l int
2219
+	_ = l
2220
+	l = len(m.Name)
2221
+	if l > 0 {
2222
+		n += 1 + l + sovMetrics(uint64(l))
2223
+	}
2224
+	if m.RxBytes != 0 {
2225
+		n += 1 + sovMetrics(uint64(m.RxBytes))
2226
+	}
2227
+	if m.RxPackets != 0 {
2228
+		n += 1 + sovMetrics(uint64(m.RxPackets))
2229
+	}
2230
+	if m.RxErrors != 0 {
2231
+		n += 1 + sovMetrics(uint64(m.RxErrors))
2232
+	}
2233
+	if m.RxDropped != 0 {
2234
+		n += 1 + sovMetrics(uint64(m.RxDropped))
2235
+	}
2236
+	if m.TxBytes != 0 {
2237
+		n += 1 + sovMetrics(uint64(m.TxBytes))
2238
+	}
2239
+	if m.TxPackets != 0 {
2240
+		n += 1 + sovMetrics(uint64(m.TxPackets))
2241
+	}
2242
+	if m.TxErrors != 0 {
2243
+		n += 1 + sovMetrics(uint64(m.TxErrors))
2244
+	}
2245
+	if m.TxDropped != 0 {
2246
+		n += 1 + sovMetrics(uint64(m.TxDropped))
2247
+	}
2248
+	if m.XXX_unrecognized != nil {
2249
+		n += len(m.XXX_unrecognized)
2250
+	}
2251
+	return n
2252
+}
2253
+
2254
+func (m *CgroupStats) Size() (n int) {
2255
+	if m == nil {
2256
+		return 0
2257
+	}
2258
+	var l int
2259
+	_ = l
2260
+	if m.NrSleeping != 0 {
2261
+		n += 1 + sovMetrics(uint64(m.NrSleeping))
2262
+	}
2263
+	if m.NrRunning != 0 {
2264
+		n += 1 + sovMetrics(uint64(m.NrRunning))
2265
+	}
2266
+	if m.NrStopped != 0 {
2267
+		n += 1 + sovMetrics(uint64(m.NrStopped))
2268
+	}
2269
+	if m.NrUninterruptible != 0 {
2270
+		n += 1 + sovMetrics(uint64(m.NrUninterruptible))
2271
+	}
2272
+	if m.NrIoWait != 0 {
2273
+		n += 1 + sovMetrics(uint64(m.NrIoWait))
2274
+	}
2275
+	if m.XXX_unrecognized != nil {
2276
+		n += len(m.XXX_unrecognized)
2277
+	}
2278
+	return n
2279
+}
2280
+
2281
+func sovMetrics(x uint64) (n int) {
2282
+	for {
2283
+		n++
2284
+		x >>= 7
2285
+		if x == 0 {
2286
+			break
2287
+		}
2288
+	}
2289
+	return n
2290
+}
2291
+func sozMetrics(x uint64) (n int) {
2292
+	return sovMetrics(uint64((x << 1) ^ uint64((int64(x) >> 63))))
2293
+}
2294
+func (this *Metrics) String() string {
2295
+	if this == nil {
2296
+		return "nil"
2297
+	}
2298
+	s := strings.Join([]string{`&Metrics{`,
2299
+		`Hugetlb:` + strings.Replace(fmt.Sprintf("%v", this.Hugetlb), "HugetlbStat", "HugetlbStat", 1) + `,`,
2300
+		`Pids:` + strings.Replace(fmt.Sprintf("%v", this.Pids), "PidsStat", "PidsStat", 1) + `,`,
2301
+		`CPU:` + strings.Replace(fmt.Sprintf("%v", this.CPU), "CPUStat", "CPUStat", 1) + `,`,
2302
+		`Memory:` + strings.Replace(fmt.Sprintf("%v", this.Memory), "MemoryStat", "MemoryStat", 1) + `,`,
2303
+		`Blkio:` + strings.Replace(fmt.Sprintf("%v", this.Blkio), "BlkIOStat", "BlkIOStat", 1) + `,`,
2304
+		`Rdma:` + strings.Replace(fmt.Sprintf("%v", this.Rdma), "RdmaStat", "RdmaStat", 1) + `,`,
2305
+		`Network:` + strings.Replace(fmt.Sprintf("%v", this.Network), "NetworkStat", "NetworkStat", 1) + `,`,
2306
+		`CgroupStats:` + strings.Replace(fmt.Sprintf("%v", this.CgroupStats), "CgroupStats", "CgroupStats", 1) + `,`,
2307
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2308
+		`}`,
2309
+	}, "")
2310
+	return s
2311
+}
2312
+func (this *HugetlbStat) String() string {
2313
+	if this == nil {
2314
+		return "nil"
2315
+	}
2316
+	s := strings.Join([]string{`&HugetlbStat{`,
2317
+		`Usage:` + fmt.Sprintf("%v", this.Usage) + `,`,
2318
+		`Max:` + fmt.Sprintf("%v", this.Max) + `,`,
2319
+		`Failcnt:` + fmt.Sprintf("%v", this.Failcnt) + `,`,
2320
+		`Pagesize:` + fmt.Sprintf("%v", this.Pagesize) + `,`,
2321
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2322
+		`}`,
2323
+	}, "")
2324
+	return s
2325
+}
2326
+func (this *PidsStat) String() string {
2327
+	if this == nil {
2328
+		return "nil"
2329
+	}
2330
+	s := strings.Join([]string{`&PidsStat{`,
2331
+		`Current:` + fmt.Sprintf("%v", this.Current) + `,`,
2332
+		`Limit:` + fmt.Sprintf("%v", this.Limit) + `,`,
2333
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2334
+		`}`,
2335
+	}, "")
2336
+	return s
2337
+}
2338
+func (this *CPUStat) String() string {
2339
+	if this == nil {
2340
+		return "nil"
2341
+	}
2342
+	s := strings.Join([]string{`&CPUStat{`,
2343
+		`Usage:` + strings.Replace(fmt.Sprintf("%v", this.Usage), "CPUUsage", "CPUUsage", 1) + `,`,
2344
+		`Throttling:` + strings.Replace(fmt.Sprintf("%v", this.Throttling), "Throttle", "Throttle", 1) + `,`,
2345
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2346
+		`}`,
2347
+	}, "")
2348
+	return s
2349
+}
2350
+func (this *CPUUsage) String() string {
2351
+	if this == nil {
2352
+		return "nil"
2353
+	}
2354
+	s := strings.Join([]string{`&CPUUsage{`,
2355
+		`Total:` + fmt.Sprintf("%v", this.Total) + `,`,
2356
+		`Kernel:` + fmt.Sprintf("%v", this.Kernel) + `,`,
2357
+		`User:` + fmt.Sprintf("%v", this.User) + `,`,
2358
+		`PerCPU:` + fmt.Sprintf("%v", this.PerCPU) + `,`,
2359
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2360
+		`}`,
2361
+	}, "")
2362
+	return s
2363
+}
2364
+func (this *Throttle) String() string {
2365
+	if this == nil {
2366
+		return "nil"
2367
+	}
2368
+	s := strings.Join([]string{`&Throttle{`,
2369
+		`Periods:` + fmt.Sprintf("%v", this.Periods) + `,`,
2370
+		`ThrottledPeriods:` + fmt.Sprintf("%v", this.ThrottledPeriods) + `,`,
2371
+		`ThrottledTime:` + fmt.Sprintf("%v", this.ThrottledTime) + `,`,
2372
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2373
+		`}`,
2374
+	}, "")
2375
+	return s
2376
+}
2377
+func (this *MemoryStat) String() string {
2378
+	if this == nil {
2379
+		return "nil"
2380
+	}
2381
+	s := strings.Join([]string{`&MemoryStat{`,
2382
+		`Cache:` + fmt.Sprintf("%v", this.Cache) + `,`,
2383
+		`RSS:` + fmt.Sprintf("%v", this.RSS) + `,`,
2384
+		`RSSHuge:` + fmt.Sprintf("%v", this.RSSHuge) + `,`,
2385
+		`MappedFile:` + fmt.Sprintf("%v", this.MappedFile) + `,`,
2386
+		`Dirty:` + fmt.Sprintf("%v", this.Dirty) + `,`,
2387
+		`Writeback:` + fmt.Sprintf("%v", this.Writeback) + `,`,
2388
+		`PgPgIn:` + fmt.Sprintf("%v", this.PgPgIn) + `,`,
2389
+		`PgPgOut:` + fmt.Sprintf("%v", this.PgPgOut) + `,`,
2390
+		`PgFault:` + fmt.Sprintf("%v", this.PgFault) + `,`,
2391
+		`PgMajFault:` + fmt.Sprintf("%v", this.PgMajFault) + `,`,
2392
+		`InactiveAnon:` + fmt.Sprintf("%v", this.InactiveAnon) + `,`,
2393
+		`ActiveAnon:` + fmt.Sprintf("%v", this.ActiveAnon) + `,`,
2394
+		`InactiveFile:` + fmt.Sprintf("%v", this.InactiveFile) + `,`,
2395
+		`ActiveFile:` + fmt.Sprintf("%v", this.ActiveFile) + `,`,
2396
+		`Unevictable:` + fmt.Sprintf("%v", this.Unevictable) + `,`,
2397
+		`HierarchicalMemoryLimit:` + fmt.Sprintf("%v", this.HierarchicalMemoryLimit) + `,`,
2398
+		`HierarchicalSwapLimit:` + fmt.Sprintf("%v", this.HierarchicalSwapLimit) + `,`,
2399
+		`TotalCache:` + fmt.Sprintf("%v", this.TotalCache) + `,`,
2400
+		`TotalRSS:` + fmt.Sprintf("%v", this.TotalRSS) + `,`,
2401
+		`TotalRSSHuge:` + fmt.Sprintf("%v", this.TotalRSSHuge) + `,`,
2402
+		`TotalMappedFile:` + fmt.Sprintf("%v", this.TotalMappedFile) + `,`,
2403
+		`TotalDirty:` + fmt.Sprintf("%v", this.TotalDirty) + `,`,
2404
+		`TotalWriteback:` + fmt.Sprintf("%v", this.TotalWriteback) + `,`,
2405
+		`TotalPgPgIn:` + fmt.Sprintf("%v", this.TotalPgPgIn) + `,`,
2406
+		`TotalPgPgOut:` + fmt.Sprintf("%v", this.TotalPgPgOut) + `,`,
2407
+		`TotalPgFault:` + fmt.Sprintf("%v", this.TotalPgFault) + `,`,
2408
+		`TotalPgMajFault:` + fmt.Sprintf("%v", this.TotalPgMajFault) + `,`,
2409
+		`TotalInactiveAnon:` + fmt.Sprintf("%v", this.TotalInactiveAnon) + `,`,
2410
+		`TotalActiveAnon:` + fmt.Sprintf("%v", this.TotalActiveAnon) + `,`,
2411
+		`TotalInactiveFile:` + fmt.Sprintf("%v", this.TotalInactiveFile) + `,`,
2412
+		`TotalActiveFile:` + fmt.Sprintf("%v", this.TotalActiveFile) + `,`,
2413
+		`TotalUnevictable:` + fmt.Sprintf("%v", this.TotalUnevictable) + `,`,
2414
+		`Usage:` + strings.Replace(fmt.Sprintf("%v", this.Usage), "MemoryEntry", "MemoryEntry", 1) + `,`,
2415
+		`Swap:` + strings.Replace(fmt.Sprintf("%v", this.Swap), "MemoryEntry", "MemoryEntry", 1) + `,`,
2416
+		`Kernel:` + strings.Replace(fmt.Sprintf("%v", this.Kernel), "MemoryEntry", "MemoryEntry", 1) + `,`,
2417
+		`KernelTCP:` + strings.Replace(fmt.Sprintf("%v", this.KernelTCP), "MemoryEntry", "MemoryEntry", 1) + `,`,
2418
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2419
+		`}`,
2420
+	}, "")
2421
+	return s
2422
+}
2423
+func (this *MemoryEntry) String() string {
2424
+	if this == nil {
2425
+		return "nil"
2426
+	}
2427
+	s := strings.Join([]string{`&MemoryEntry{`,
2428
+		`Limit:` + fmt.Sprintf("%v", this.Limit) + `,`,
2429
+		`Usage:` + fmt.Sprintf("%v", this.Usage) + `,`,
2430
+		`Max:` + fmt.Sprintf("%v", this.Max) + `,`,
2431
+		`Failcnt:` + fmt.Sprintf("%v", this.Failcnt) + `,`,
2432
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2433
+		`}`,
2434
+	}, "")
2435
+	return s
2436
+}
2437
+func (this *BlkIOStat) String() string {
2438
+	if this == nil {
2439
+		return "nil"
2440
+	}
2441
+	s := strings.Join([]string{`&BlkIOStat{`,
2442
+		`IoServiceBytesRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoServiceBytesRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2443
+		`IoServicedRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoServicedRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2444
+		`IoQueuedRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoQueuedRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2445
+		`IoServiceTimeRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoServiceTimeRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2446
+		`IoWaitTimeRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoWaitTimeRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2447
+		`IoMergedRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoMergedRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2448
+		`IoTimeRecursive:` + strings.Replace(fmt.Sprintf("%v", this.IoTimeRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2449
+		`SectorsRecursive:` + strings.Replace(fmt.Sprintf("%v", this.SectorsRecursive), "BlkIOEntry", "BlkIOEntry", 1) + `,`,
2450
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2451
+		`}`,
2452
+	}, "")
2453
+	return s
2454
+}
2455
+func (this *BlkIOEntry) String() string {
2456
+	if this == nil {
2457
+		return "nil"
2458
+	}
2459
+	s := strings.Join([]string{`&BlkIOEntry{`,
2460
+		`Op:` + fmt.Sprintf("%v", this.Op) + `,`,
2461
+		`Device:` + fmt.Sprintf("%v", this.Device) + `,`,
2462
+		`Major:` + fmt.Sprintf("%v", this.Major) + `,`,
2463
+		`Minor:` + fmt.Sprintf("%v", this.Minor) + `,`,
2464
+		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
2465
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2466
+		`}`,
2467
+	}, "")
2468
+	return s
2469
+}
2470
+func (this *RdmaStat) String() string {
2471
+	if this == nil {
2472
+		return "nil"
2473
+	}
2474
+	s := strings.Join([]string{`&RdmaStat{`,
2475
+		`Current:` + strings.Replace(fmt.Sprintf("%v", this.Current), "RdmaEntry", "RdmaEntry", 1) + `,`,
2476
+		`Limit:` + strings.Replace(fmt.Sprintf("%v", this.Limit), "RdmaEntry", "RdmaEntry", 1) + `,`,
2477
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2478
+		`}`,
2479
+	}, "")
2480
+	return s
2481
+}
2482
+func (this *RdmaEntry) String() string {
2483
+	if this == nil {
2484
+		return "nil"
2485
+	}
2486
+	s := strings.Join([]string{`&RdmaEntry{`,
2487
+		`Device:` + fmt.Sprintf("%v", this.Device) + `,`,
2488
+		`HcaHandles:` + fmt.Sprintf("%v", this.HcaHandles) + `,`,
2489
+		`HcaObjects:` + fmt.Sprintf("%v", this.HcaObjects) + `,`,
2490
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2491
+		`}`,
2492
+	}, "")
2493
+	return s
2494
+}
2495
+func (this *NetworkStat) String() string {
2496
+	if this == nil {
2497
+		return "nil"
2498
+	}
2499
+	s := strings.Join([]string{`&NetworkStat{`,
2500
+		`Name:` + fmt.Sprintf("%v", this.Name) + `,`,
2501
+		`RxBytes:` + fmt.Sprintf("%v", this.RxBytes) + `,`,
2502
+		`RxPackets:` + fmt.Sprintf("%v", this.RxPackets) + `,`,
2503
+		`RxErrors:` + fmt.Sprintf("%v", this.RxErrors) + `,`,
2504
+		`RxDropped:` + fmt.Sprintf("%v", this.RxDropped) + `,`,
2505
+		`TxBytes:` + fmt.Sprintf("%v", this.TxBytes) + `,`,
2506
+		`TxPackets:` + fmt.Sprintf("%v", this.TxPackets) + `,`,
2507
+		`TxErrors:` + fmt.Sprintf("%v", this.TxErrors) + `,`,
2508
+		`TxDropped:` + fmt.Sprintf("%v", this.TxDropped) + `,`,
2509
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2510
+		`}`,
2511
+	}, "")
2512
+	return s
2513
+}
2514
+func (this *CgroupStats) String() string {
2515
+	if this == nil {
2516
+		return "nil"
2517
+	}
2518
+	s := strings.Join([]string{`&CgroupStats{`,
2519
+		`NrSleeping:` + fmt.Sprintf("%v", this.NrSleeping) + `,`,
2520
+		`NrRunning:` + fmt.Sprintf("%v", this.NrRunning) + `,`,
2521
+		`NrStopped:` + fmt.Sprintf("%v", this.NrStopped) + `,`,
2522
+		`NrUninterruptible:` + fmt.Sprintf("%v", this.NrUninterruptible) + `,`,
2523
+		`NrIoWait:` + fmt.Sprintf("%v", this.NrIoWait) + `,`,
2524
+		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
2525
+		`}`,
2526
+	}, "")
2527
+	return s
2528
+}
2529
+func valueToStringMetrics(v interface{}) string {
2530
+	rv := reflect.ValueOf(v)
2531
+	if rv.IsNil() {
2532
+		return "nil"
2533
+	}
2534
+	pv := reflect.Indirect(rv).Interface()
2535
+	return fmt.Sprintf("*%v", pv)
2536
+}
2537
+func (m *Metrics) Unmarshal(dAtA []byte) error {
2538
+	l := len(dAtA)
2539
+	iNdEx := 0
2540
+	for iNdEx < l {
2541
+		preIndex := iNdEx
2542
+		var wire uint64
2543
+		for shift := uint(0); ; shift += 7 {
2544
+			if shift >= 64 {
2545
+				return ErrIntOverflowMetrics
2546
+			}
2547
+			if iNdEx >= l {
2548
+				return io.ErrUnexpectedEOF
2549
+			}
2550
+			b := dAtA[iNdEx]
2551
+			iNdEx++
2552
+			wire |= uint64(b&0x7F) << shift
2553
+			if b < 0x80 {
2554
+				break
2555
+			}
2556
+		}
2557
+		fieldNum := int32(wire >> 3)
2558
+		wireType := int(wire & 0x7)
2559
+		if wireType == 4 {
2560
+			return fmt.Errorf("proto: Metrics: wiretype end group for non-group")
2561
+		}
2562
+		if fieldNum <= 0 {
2563
+			return fmt.Errorf("proto: Metrics: illegal tag %d (wire type %d)", fieldNum, wire)
2564
+		}
2565
+		switch fieldNum {
2566
+		case 1:
2567
+			if wireType != 2 {
2568
+				return fmt.Errorf("proto: wrong wireType = %d for field Hugetlb", wireType)
2569
+			}
2570
+			var msglen int
2571
+			for shift := uint(0); ; shift += 7 {
2572
+				if shift >= 64 {
2573
+					return ErrIntOverflowMetrics
2574
+				}
2575
+				if iNdEx >= l {
2576
+					return io.ErrUnexpectedEOF
2577
+				}
2578
+				b := dAtA[iNdEx]
2579
+				iNdEx++
2580
+				msglen |= int(b&0x7F) << shift
2581
+				if b < 0x80 {
2582
+					break
2583
+				}
2584
+			}
2585
+			if msglen < 0 {
2586
+				return ErrInvalidLengthMetrics
2587
+			}
2588
+			postIndex := iNdEx + msglen
2589
+			if postIndex < 0 {
2590
+				return ErrInvalidLengthMetrics
2591
+			}
2592
+			if postIndex > l {
2593
+				return io.ErrUnexpectedEOF
2594
+			}
2595
+			m.Hugetlb = append(m.Hugetlb, &HugetlbStat{})
2596
+			if err := m.Hugetlb[len(m.Hugetlb)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2597
+				return err
2598
+			}
2599
+			iNdEx = postIndex
2600
+		case 2:
2601
+			if wireType != 2 {
2602
+				return fmt.Errorf("proto: wrong wireType = %d for field Pids", wireType)
2603
+			}
2604
+			var msglen int
2605
+			for shift := uint(0); ; shift += 7 {
2606
+				if shift >= 64 {
2607
+					return ErrIntOverflowMetrics
2608
+				}
2609
+				if iNdEx >= l {
2610
+					return io.ErrUnexpectedEOF
2611
+				}
2612
+				b := dAtA[iNdEx]
2613
+				iNdEx++
2614
+				msglen |= int(b&0x7F) << shift
2615
+				if b < 0x80 {
2616
+					break
2617
+				}
2618
+			}
2619
+			if msglen < 0 {
2620
+				return ErrInvalidLengthMetrics
2621
+			}
2622
+			postIndex := iNdEx + msglen
2623
+			if postIndex < 0 {
2624
+				return ErrInvalidLengthMetrics
2625
+			}
2626
+			if postIndex > l {
2627
+				return io.ErrUnexpectedEOF
2628
+			}
2629
+			if m.Pids == nil {
2630
+				m.Pids = &PidsStat{}
2631
+			}
2632
+			if err := m.Pids.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2633
+				return err
2634
+			}
2635
+			iNdEx = postIndex
2636
+		case 3:
2637
+			if wireType != 2 {
2638
+				return fmt.Errorf("proto: wrong wireType = %d for field CPU", wireType)
2639
+			}
2640
+			var msglen int
2641
+			for shift := uint(0); ; shift += 7 {
2642
+				if shift >= 64 {
2643
+					return ErrIntOverflowMetrics
2644
+				}
2645
+				if iNdEx >= l {
2646
+					return io.ErrUnexpectedEOF
2647
+				}
2648
+				b := dAtA[iNdEx]
2649
+				iNdEx++
2650
+				msglen |= int(b&0x7F) << shift
2651
+				if b < 0x80 {
2652
+					break
2653
+				}
2654
+			}
2655
+			if msglen < 0 {
2656
+				return ErrInvalidLengthMetrics
2657
+			}
2658
+			postIndex := iNdEx + msglen
2659
+			if postIndex < 0 {
2660
+				return ErrInvalidLengthMetrics
2661
+			}
2662
+			if postIndex > l {
2663
+				return io.ErrUnexpectedEOF
2664
+			}
2665
+			if m.CPU == nil {
2666
+				m.CPU = &CPUStat{}
2667
+			}
2668
+			if err := m.CPU.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2669
+				return err
2670
+			}
2671
+			iNdEx = postIndex
2672
+		case 4:
2673
+			if wireType != 2 {
2674
+				return fmt.Errorf("proto: wrong wireType = %d for field Memory", wireType)
2675
+			}
2676
+			var msglen int
2677
+			for shift := uint(0); ; shift += 7 {
2678
+				if shift >= 64 {
2679
+					return ErrIntOverflowMetrics
2680
+				}
2681
+				if iNdEx >= l {
2682
+					return io.ErrUnexpectedEOF
2683
+				}
2684
+				b := dAtA[iNdEx]
2685
+				iNdEx++
2686
+				msglen |= int(b&0x7F) << shift
2687
+				if b < 0x80 {
2688
+					break
2689
+				}
2690
+			}
2691
+			if msglen < 0 {
2692
+				return ErrInvalidLengthMetrics
2693
+			}
2694
+			postIndex := iNdEx + msglen
2695
+			if postIndex < 0 {
2696
+				return ErrInvalidLengthMetrics
2697
+			}
2698
+			if postIndex > l {
2699
+				return io.ErrUnexpectedEOF
2700
+			}
2701
+			if m.Memory == nil {
2702
+				m.Memory = &MemoryStat{}
2703
+			}
2704
+			if err := m.Memory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2705
+				return err
2706
+			}
2707
+			iNdEx = postIndex
2708
+		case 5:
2709
+			if wireType != 2 {
2710
+				return fmt.Errorf("proto: wrong wireType = %d for field Blkio", wireType)
2711
+			}
2712
+			var msglen int
2713
+			for shift := uint(0); ; shift += 7 {
2714
+				if shift >= 64 {
2715
+					return ErrIntOverflowMetrics
2716
+				}
2717
+				if iNdEx >= l {
2718
+					return io.ErrUnexpectedEOF
2719
+				}
2720
+				b := dAtA[iNdEx]
2721
+				iNdEx++
2722
+				msglen |= int(b&0x7F) << shift
2723
+				if b < 0x80 {
2724
+					break
2725
+				}
2726
+			}
2727
+			if msglen < 0 {
2728
+				return ErrInvalidLengthMetrics
2729
+			}
2730
+			postIndex := iNdEx + msglen
2731
+			if postIndex < 0 {
2732
+				return ErrInvalidLengthMetrics
2733
+			}
2734
+			if postIndex > l {
2735
+				return io.ErrUnexpectedEOF
2736
+			}
2737
+			if m.Blkio == nil {
2738
+				m.Blkio = &BlkIOStat{}
2739
+			}
2740
+			if err := m.Blkio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2741
+				return err
2742
+			}
2743
+			iNdEx = postIndex
2744
+		case 6:
2745
+			if wireType != 2 {
2746
+				return fmt.Errorf("proto: wrong wireType = %d for field Rdma", wireType)
2747
+			}
2748
+			var msglen int
2749
+			for shift := uint(0); ; shift += 7 {
2750
+				if shift >= 64 {
2751
+					return ErrIntOverflowMetrics
2752
+				}
2753
+				if iNdEx >= l {
2754
+					return io.ErrUnexpectedEOF
2755
+				}
2756
+				b := dAtA[iNdEx]
2757
+				iNdEx++
2758
+				msglen |= int(b&0x7F) << shift
2759
+				if b < 0x80 {
2760
+					break
2761
+				}
2762
+			}
2763
+			if msglen < 0 {
2764
+				return ErrInvalidLengthMetrics
2765
+			}
2766
+			postIndex := iNdEx + msglen
2767
+			if postIndex < 0 {
2768
+				return ErrInvalidLengthMetrics
2769
+			}
2770
+			if postIndex > l {
2771
+				return io.ErrUnexpectedEOF
2772
+			}
2773
+			if m.Rdma == nil {
2774
+				m.Rdma = &RdmaStat{}
2775
+			}
2776
+			if err := m.Rdma.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2777
+				return err
2778
+			}
2779
+			iNdEx = postIndex
2780
+		case 7:
2781
+			if wireType != 2 {
2782
+				return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
2783
+			}
2784
+			var msglen int
2785
+			for shift := uint(0); ; shift += 7 {
2786
+				if shift >= 64 {
2787
+					return ErrIntOverflowMetrics
2788
+				}
2789
+				if iNdEx >= l {
2790
+					return io.ErrUnexpectedEOF
2791
+				}
2792
+				b := dAtA[iNdEx]
2793
+				iNdEx++
2794
+				msglen |= int(b&0x7F) << shift
2795
+				if b < 0x80 {
2796
+					break
2797
+				}
2798
+			}
2799
+			if msglen < 0 {
2800
+				return ErrInvalidLengthMetrics
2801
+			}
2802
+			postIndex := iNdEx + msglen
2803
+			if postIndex < 0 {
2804
+				return ErrInvalidLengthMetrics
2805
+			}
2806
+			if postIndex > l {
2807
+				return io.ErrUnexpectedEOF
2808
+			}
2809
+			m.Network = append(m.Network, &NetworkStat{})
2810
+			if err := m.Network[len(m.Network)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2811
+				return err
2812
+			}
2813
+			iNdEx = postIndex
2814
+		case 8:
2815
+			if wireType != 2 {
2816
+				return fmt.Errorf("proto: wrong wireType = %d for field CgroupStats", wireType)
2817
+			}
2818
+			var msglen int
2819
+			for shift := uint(0); ; shift += 7 {
2820
+				if shift >= 64 {
2821
+					return ErrIntOverflowMetrics
2822
+				}
2823
+				if iNdEx >= l {
2824
+					return io.ErrUnexpectedEOF
2825
+				}
2826
+				b := dAtA[iNdEx]
2827
+				iNdEx++
2828
+				msglen |= int(b&0x7F) << shift
2829
+				if b < 0x80 {
2830
+					break
2831
+				}
2832
+			}
2833
+			if msglen < 0 {
2834
+				return ErrInvalidLengthMetrics
2835
+			}
2836
+			postIndex := iNdEx + msglen
2837
+			if postIndex < 0 {
2838
+				return ErrInvalidLengthMetrics
2839
+			}
2840
+			if postIndex > l {
2841
+				return io.ErrUnexpectedEOF
2842
+			}
2843
+			if m.CgroupStats == nil {
2844
+				m.CgroupStats = &CgroupStats{}
2845
+			}
2846
+			if err := m.CgroupStats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
2847
+				return err
2848
+			}
2849
+			iNdEx = postIndex
2850
+		default:
2851
+			iNdEx = preIndex
2852
+			skippy, err := skipMetrics(dAtA[iNdEx:])
2853
+			if err != nil {
2854
+				return err
2855
+			}
2856
+			if skippy < 0 {
2857
+				return ErrInvalidLengthMetrics
2858
+			}
2859
+			if (iNdEx + skippy) < 0 {
2860
+				return ErrInvalidLengthMetrics
2861
+			}
2862
+			if (iNdEx + skippy) > l {
2863
+				return io.ErrUnexpectedEOF
2864
+			}
2865
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
2866
+			iNdEx += skippy
2867
+		}
2868
+	}
2869
+
2870
+	if iNdEx > l {
2871
+		return io.ErrUnexpectedEOF
2872
+	}
2873
+	return nil
2874
+}
2875
+func (m *HugetlbStat) Unmarshal(dAtA []byte) error {
2876
+	l := len(dAtA)
2877
+	iNdEx := 0
2878
+	for iNdEx < l {
2879
+		preIndex := iNdEx
2880
+		var wire uint64
2881
+		for shift := uint(0); ; shift += 7 {
2882
+			if shift >= 64 {
2883
+				return ErrIntOverflowMetrics
2884
+			}
2885
+			if iNdEx >= l {
2886
+				return io.ErrUnexpectedEOF
2887
+			}
2888
+			b := dAtA[iNdEx]
2889
+			iNdEx++
2890
+			wire |= uint64(b&0x7F) << shift
2891
+			if b < 0x80 {
2892
+				break
2893
+			}
2894
+		}
2895
+		fieldNum := int32(wire >> 3)
2896
+		wireType := int(wire & 0x7)
2897
+		if wireType == 4 {
2898
+			return fmt.Errorf("proto: HugetlbStat: wiretype end group for non-group")
2899
+		}
2900
+		if fieldNum <= 0 {
2901
+			return fmt.Errorf("proto: HugetlbStat: illegal tag %d (wire type %d)", fieldNum, wire)
2902
+		}
2903
+		switch fieldNum {
2904
+		case 1:
2905
+			if wireType != 0 {
2906
+				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
2907
+			}
2908
+			m.Usage = 0
2909
+			for shift := uint(0); ; shift += 7 {
2910
+				if shift >= 64 {
2911
+					return ErrIntOverflowMetrics
2912
+				}
2913
+				if iNdEx >= l {
2914
+					return io.ErrUnexpectedEOF
2915
+				}
2916
+				b := dAtA[iNdEx]
2917
+				iNdEx++
2918
+				m.Usage |= uint64(b&0x7F) << shift
2919
+				if b < 0x80 {
2920
+					break
2921
+				}
2922
+			}
2923
+		case 2:
2924
+			if wireType != 0 {
2925
+				return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType)
2926
+			}
2927
+			m.Max = 0
2928
+			for shift := uint(0); ; shift += 7 {
2929
+				if shift >= 64 {
2930
+					return ErrIntOverflowMetrics
2931
+				}
2932
+				if iNdEx >= l {
2933
+					return io.ErrUnexpectedEOF
2934
+				}
2935
+				b := dAtA[iNdEx]
2936
+				iNdEx++
2937
+				m.Max |= uint64(b&0x7F) << shift
2938
+				if b < 0x80 {
2939
+					break
2940
+				}
2941
+			}
2942
+		case 3:
2943
+			if wireType != 0 {
2944
+				return fmt.Errorf("proto: wrong wireType = %d for field Failcnt", wireType)
2945
+			}
2946
+			m.Failcnt = 0
2947
+			for shift := uint(0); ; shift += 7 {
2948
+				if shift >= 64 {
2949
+					return ErrIntOverflowMetrics
2950
+				}
2951
+				if iNdEx >= l {
2952
+					return io.ErrUnexpectedEOF
2953
+				}
2954
+				b := dAtA[iNdEx]
2955
+				iNdEx++
2956
+				m.Failcnt |= uint64(b&0x7F) << shift
2957
+				if b < 0x80 {
2958
+					break
2959
+				}
2960
+			}
2961
+		case 4:
2962
+			if wireType != 2 {
2963
+				return fmt.Errorf("proto: wrong wireType = %d for field Pagesize", wireType)
2964
+			}
2965
+			var stringLen uint64
2966
+			for shift := uint(0); ; shift += 7 {
2967
+				if shift >= 64 {
2968
+					return ErrIntOverflowMetrics
2969
+				}
2970
+				if iNdEx >= l {
2971
+					return io.ErrUnexpectedEOF
2972
+				}
2973
+				b := dAtA[iNdEx]
2974
+				iNdEx++
2975
+				stringLen |= uint64(b&0x7F) << shift
2976
+				if b < 0x80 {
2977
+					break
2978
+				}
2979
+			}
2980
+			intStringLen := int(stringLen)
2981
+			if intStringLen < 0 {
2982
+				return ErrInvalidLengthMetrics
2983
+			}
2984
+			postIndex := iNdEx + intStringLen
2985
+			if postIndex < 0 {
2986
+				return ErrInvalidLengthMetrics
2987
+			}
2988
+			if postIndex > l {
2989
+				return io.ErrUnexpectedEOF
2990
+			}
2991
+			m.Pagesize = string(dAtA[iNdEx:postIndex])
2992
+			iNdEx = postIndex
2993
+		default:
2994
+			iNdEx = preIndex
2995
+			skippy, err := skipMetrics(dAtA[iNdEx:])
2996
+			if err != nil {
2997
+				return err
2998
+			}
2999
+			if skippy < 0 {
3000
+				return ErrInvalidLengthMetrics
3001
+			}
3002
+			if (iNdEx + skippy) < 0 {
3003
+				return ErrInvalidLengthMetrics
3004
+			}
3005
+			if (iNdEx + skippy) > l {
3006
+				return io.ErrUnexpectedEOF
3007
+			}
3008
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
3009
+			iNdEx += skippy
3010
+		}
3011
+	}
3012
+
3013
+	if iNdEx > l {
3014
+		return io.ErrUnexpectedEOF
3015
+	}
3016
+	return nil
3017
+}
3018
+func (m *PidsStat) Unmarshal(dAtA []byte) error {
3019
+	l := len(dAtA)
3020
+	iNdEx := 0
3021
+	for iNdEx < l {
3022
+		preIndex := iNdEx
3023
+		var wire uint64
3024
+		for shift := uint(0); ; shift += 7 {
3025
+			if shift >= 64 {
3026
+				return ErrIntOverflowMetrics
3027
+			}
3028
+			if iNdEx >= l {
3029
+				return io.ErrUnexpectedEOF
3030
+			}
3031
+			b := dAtA[iNdEx]
3032
+			iNdEx++
3033
+			wire |= uint64(b&0x7F) << shift
3034
+			if b < 0x80 {
3035
+				break
3036
+			}
3037
+		}
3038
+		fieldNum := int32(wire >> 3)
3039
+		wireType := int(wire & 0x7)
3040
+		if wireType == 4 {
3041
+			return fmt.Errorf("proto: PidsStat: wiretype end group for non-group")
3042
+		}
3043
+		if fieldNum <= 0 {
3044
+			return fmt.Errorf("proto: PidsStat: illegal tag %d (wire type %d)", fieldNum, wire)
3045
+		}
3046
+		switch fieldNum {
3047
+		case 1:
3048
+			if wireType != 0 {
3049
+				return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
3050
+			}
3051
+			m.Current = 0
3052
+			for shift := uint(0); ; shift += 7 {
3053
+				if shift >= 64 {
3054
+					return ErrIntOverflowMetrics
3055
+				}
3056
+				if iNdEx >= l {
3057
+					return io.ErrUnexpectedEOF
3058
+				}
3059
+				b := dAtA[iNdEx]
3060
+				iNdEx++
3061
+				m.Current |= uint64(b&0x7F) << shift
3062
+				if b < 0x80 {
3063
+					break
3064
+				}
3065
+			}
3066
+		case 2:
3067
+			if wireType != 0 {
3068
+				return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
3069
+			}
3070
+			m.Limit = 0
3071
+			for shift := uint(0); ; shift += 7 {
3072
+				if shift >= 64 {
3073
+					return ErrIntOverflowMetrics
3074
+				}
3075
+				if iNdEx >= l {
3076
+					return io.ErrUnexpectedEOF
3077
+				}
3078
+				b := dAtA[iNdEx]
3079
+				iNdEx++
3080
+				m.Limit |= uint64(b&0x7F) << shift
3081
+				if b < 0x80 {
3082
+					break
3083
+				}
3084
+			}
3085
+		default:
3086
+			iNdEx = preIndex
3087
+			skippy, err := skipMetrics(dAtA[iNdEx:])
3088
+			if err != nil {
3089
+				return err
3090
+			}
3091
+			if skippy < 0 {
3092
+				return ErrInvalidLengthMetrics
3093
+			}
3094
+			if (iNdEx + skippy) < 0 {
3095
+				return ErrInvalidLengthMetrics
3096
+			}
3097
+			if (iNdEx + skippy) > l {
3098
+				return io.ErrUnexpectedEOF
3099
+			}
3100
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
3101
+			iNdEx += skippy
3102
+		}
3103
+	}
3104
+
3105
+	if iNdEx > l {
3106
+		return io.ErrUnexpectedEOF
3107
+	}
3108
+	return nil
3109
+}
3110
+func (m *CPUStat) Unmarshal(dAtA []byte) error {
3111
+	l := len(dAtA)
3112
+	iNdEx := 0
3113
+	for iNdEx < l {
3114
+		preIndex := iNdEx
3115
+		var wire uint64
3116
+		for shift := uint(0); ; shift += 7 {
3117
+			if shift >= 64 {
3118
+				return ErrIntOverflowMetrics
3119
+			}
3120
+			if iNdEx >= l {
3121
+				return io.ErrUnexpectedEOF
3122
+			}
3123
+			b := dAtA[iNdEx]
3124
+			iNdEx++
3125
+			wire |= uint64(b&0x7F) << shift
3126
+			if b < 0x80 {
3127
+				break
3128
+			}
3129
+		}
3130
+		fieldNum := int32(wire >> 3)
3131
+		wireType := int(wire & 0x7)
3132
+		if wireType == 4 {
3133
+			return fmt.Errorf("proto: CPUStat: wiretype end group for non-group")
3134
+		}
3135
+		if fieldNum <= 0 {
3136
+			return fmt.Errorf("proto: CPUStat: illegal tag %d (wire type %d)", fieldNum, wire)
3137
+		}
3138
+		switch fieldNum {
3139
+		case 1:
3140
+			if wireType != 2 {
3141
+				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
3142
+			}
3143
+			var msglen int
3144
+			for shift := uint(0); ; shift += 7 {
3145
+				if shift >= 64 {
3146
+					return ErrIntOverflowMetrics
3147
+				}
3148
+				if iNdEx >= l {
3149
+					return io.ErrUnexpectedEOF
3150
+				}
3151
+				b := dAtA[iNdEx]
3152
+				iNdEx++
3153
+				msglen |= int(b&0x7F) << shift
3154
+				if b < 0x80 {
3155
+					break
3156
+				}
3157
+			}
3158
+			if msglen < 0 {
3159
+				return ErrInvalidLengthMetrics
3160
+			}
3161
+			postIndex := iNdEx + msglen
3162
+			if postIndex < 0 {
3163
+				return ErrInvalidLengthMetrics
3164
+			}
3165
+			if postIndex > l {
3166
+				return io.ErrUnexpectedEOF
3167
+			}
3168
+			if m.Usage == nil {
3169
+				m.Usage = &CPUUsage{}
3170
+			}
3171
+			if err := m.Usage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3172
+				return err
3173
+			}
3174
+			iNdEx = postIndex
3175
+		case 2:
3176
+			if wireType != 2 {
3177
+				return fmt.Errorf("proto: wrong wireType = %d for field Throttling", wireType)
3178
+			}
3179
+			var msglen int
3180
+			for shift := uint(0); ; shift += 7 {
3181
+				if shift >= 64 {
3182
+					return ErrIntOverflowMetrics
3183
+				}
3184
+				if iNdEx >= l {
3185
+					return io.ErrUnexpectedEOF
3186
+				}
3187
+				b := dAtA[iNdEx]
3188
+				iNdEx++
3189
+				msglen |= int(b&0x7F) << shift
3190
+				if b < 0x80 {
3191
+					break
3192
+				}
3193
+			}
3194
+			if msglen < 0 {
3195
+				return ErrInvalidLengthMetrics
3196
+			}
3197
+			postIndex := iNdEx + msglen
3198
+			if postIndex < 0 {
3199
+				return ErrInvalidLengthMetrics
3200
+			}
3201
+			if postIndex > l {
3202
+				return io.ErrUnexpectedEOF
3203
+			}
3204
+			if m.Throttling == nil {
3205
+				m.Throttling = &Throttle{}
3206
+			}
3207
+			if err := m.Throttling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
3208
+				return err
3209
+			}
3210
+			iNdEx = postIndex
3211
+		default:
3212
+			iNdEx = preIndex
3213
+			skippy, err := skipMetrics(dAtA[iNdEx:])
3214
+			if err != nil {
3215
+				return err
3216
+			}
3217
+			if skippy < 0 {
3218
+				return ErrInvalidLengthMetrics
3219
+			}
3220
+			if (iNdEx + skippy) < 0 {
3221
+				return ErrInvalidLengthMetrics
3222
+			}
3223
+			if (iNdEx + skippy) > l {
3224
+				return io.ErrUnexpectedEOF
3225
+			}
3226
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
3227
+			iNdEx += skippy
3228
+		}
3229
+	}
3230
+
3231
+	if iNdEx > l {
3232
+		return io.ErrUnexpectedEOF
3233
+	}
3234
+	return nil
3235
+}
3236
+func (m *CPUUsage) Unmarshal(dAtA []byte) error {
3237
+	l := len(dAtA)
3238
+	iNdEx := 0
3239
+	for iNdEx < l {
3240
+		preIndex := iNdEx
3241
+		var wire uint64
3242
+		for shift := uint(0); ; shift += 7 {
3243
+			if shift >= 64 {
3244
+				return ErrIntOverflowMetrics
3245
+			}
3246
+			if iNdEx >= l {
3247
+				return io.ErrUnexpectedEOF
3248
+			}
3249
+			b := dAtA[iNdEx]
3250
+			iNdEx++
3251
+			wire |= uint64(b&0x7F) << shift
3252
+			if b < 0x80 {
3253
+				break
3254
+			}
3255
+		}
3256
+		fieldNum := int32(wire >> 3)
3257
+		wireType := int(wire & 0x7)
3258
+		if wireType == 4 {
3259
+			return fmt.Errorf("proto: CPUUsage: wiretype end group for non-group")
3260
+		}
3261
+		if fieldNum <= 0 {
3262
+			return fmt.Errorf("proto: CPUUsage: illegal tag %d (wire type %d)", fieldNum, wire)
3263
+		}
3264
+		switch fieldNum {
3265
+		case 1:
3266
+			if wireType != 0 {
3267
+				return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType)
3268
+			}
3269
+			m.Total = 0
3270
+			for shift := uint(0); ; shift += 7 {
3271
+				if shift >= 64 {
3272
+					return ErrIntOverflowMetrics
3273
+				}
3274
+				if iNdEx >= l {
3275
+					return io.ErrUnexpectedEOF
3276
+				}
3277
+				b := dAtA[iNdEx]
3278
+				iNdEx++
3279
+				m.Total |= uint64(b&0x7F) << shift
3280
+				if b < 0x80 {
3281
+					break
3282
+				}
3283
+			}
3284
+		case 2:
3285
+			if wireType != 0 {
3286
+				return fmt.Errorf("proto: wrong wireType = %d for field Kernel", wireType)
3287
+			}
3288
+			m.Kernel = 0
3289
+			for shift := uint(0); ; shift += 7 {
3290
+				if shift >= 64 {
3291
+					return ErrIntOverflowMetrics
3292
+				}
3293
+				if iNdEx >= l {
3294
+					return io.ErrUnexpectedEOF
3295
+				}
3296
+				b := dAtA[iNdEx]
3297
+				iNdEx++
3298
+				m.Kernel |= uint64(b&0x7F) << shift
3299
+				if b < 0x80 {
3300
+					break
3301
+				}
3302
+			}
3303
+		case 3:
3304
+			if wireType != 0 {
3305
+				return fmt.Errorf("proto: wrong wireType = %d for field User", wireType)
3306
+			}
3307
+			m.User = 0
3308
+			for shift := uint(0); ; shift += 7 {
3309
+				if shift >= 64 {
3310
+					return ErrIntOverflowMetrics
3311
+				}
3312
+				if iNdEx >= l {
3313
+					return io.ErrUnexpectedEOF
3314
+				}
3315
+				b := dAtA[iNdEx]
3316
+				iNdEx++
3317
+				m.User |= uint64(b&0x7F) << shift
3318
+				if b < 0x80 {
3319
+					break
3320
+				}
3321
+			}
3322
+		case 4:
3323
+			if wireType == 0 {
3324
+				var v uint64
3325
+				for shift := uint(0); ; shift += 7 {
3326
+					if shift >= 64 {
3327
+						return ErrIntOverflowMetrics
3328
+					}
3329
+					if iNdEx >= l {
3330
+						return io.ErrUnexpectedEOF
3331
+					}
3332
+					b := dAtA[iNdEx]
3333
+					iNdEx++
3334
+					v |= uint64(b&0x7F) << shift
3335
+					if b < 0x80 {
3336
+						break
3337
+					}
3338
+				}
3339
+				m.PerCPU = append(m.PerCPU, v)
3340
+			} else if wireType == 2 {
3341
+				var packedLen int
3342
+				for shift := uint(0); ; shift += 7 {
3343
+					if shift >= 64 {
3344
+						return ErrIntOverflowMetrics
3345
+					}
3346
+					if iNdEx >= l {
3347
+						return io.ErrUnexpectedEOF
3348
+					}
3349
+					b := dAtA[iNdEx]
3350
+					iNdEx++
3351
+					packedLen |= int(b&0x7F) << shift
3352
+					if b < 0x80 {
3353
+						break
3354
+					}
3355
+				}
3356
+				if packedLen < 0 {
3357
+					return ErrInvalidLengthMetrics
3358
+				}
3359
+				postIndex := iNdEx + packedLen
3360
+				if postIndex < 0 {
3361
+					return ErrInvalidLengthMetrics
3362
+				}
3363
+				if postIndex > l {
3364
+					return io.ErrUnexpectedEOF
3365
+				}
3366
+				var elementCount int
3367
+				var count int
3368
+				for _, integer := range dAtA[iNdEx:postIndex] {
3369
+					if integer < 128 {
3370
+						count++
3371
+					}
3372
+				}
3373
+				elementCount = count
3374
+				if elementCount != 0 && len(m.PerCPU) == 0 {
3375
+					m.PerCPU = make([]uint64, 0, elementCount)
3376
+				}
3377
+				for iNdEx < postIndex {
3378
+					var v uint64
3379
+					for shift := uint(0); ; shift += 7 {
3380
+						if shift >= 64 {
3381
+							return ErrIntOverflowMetrics
3382
+						}
3383
+						if iNdEx >= l {
3384
+							return io.ErrUnexpectedEOF
3385
+						}
3386
+						b := dAtA[iNdEx]
3387
+						iNdEx++
3388
+						v |= uint64(b&0x7F) << shift
3389
+						if b < 0x80 {
3390
+							break
3391
+						}
3392
+					}
3393
+					m.PerCPU = append(m.PerCPU, v)
3394
+				}
3395
+			} else {
3396
+				return fmt.Errorf("proto: wrong wireType = %d for field PerCPU", wireType)
3397
+			}
3398
+		default:
3399
+			iNdEx = preIndex
3400
+			skippy, err := skipMetrics(dAtA[iNdEx:])
3401
+			if err != nil {
3402
+				return err
3403
+			}
3404
+			if skippy < 0 {
3405
+				return ErrInvalidLengthMetrics
3406
+			}
3407
+			if (iNdEx + skippy) < 0 {
3408
+				return ErrInvalidLengthMetrics
3409
+			}
3410
+			if (iNdEx + skippy) > l {
3411
+				return io.ErrUnexpectedEOF
3412
+			}
3413
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
3414
+			iNdEx += skippy
3415
+		}
3416
+	}
3417
+
3418
+	if iNdEx > l {
3419
+		return io.ErrUnexpectedEOF
3420
+	}
3421
+	return nil
3422
+}
3423
+func (m *Throttle) Unmarshal(dAtA []byte) error {
3424
+	l := len(dAtA)
3425
+	iNdEx := 0
3426
+	for iNdEx < l {
3427
+		preIndex := iNdEx
3428
+		var wire uint64
3429
+		for shift := uint(0); ; shift += 7 {
3430
+			if shift >= 64 {
3431
+				return ErrIntOverflowMetrics
3432
+			}
3433
+			if iNdEx >= l {
3434
+				return io.ErrUnexpectedEOF
3435
+			}
3436
+			b := dAtA[iNdEx]
3437
+			iNdEx++
3438
+			wire |= uint64(b&0x7F) << shift
3439
+			if b < 0x80 {
3440
+				break
3441
+			}
3442
+		}
3443
+		fieldNum := int32(wire >> 3)
3444
+		wireType := int(wire & 0x7)
3445
+		if wireType == 4 {
3446
+			return fmt.Errorf("proto: Throttle: wiretype end group for non-group")
3447
+		}
3448
+		if fieldNum <= 0 {
3449
+			return fmt.Errorf("proto: Throttle: illegal tag %d (wire type %d)", fieldNum, wire)
3450
+		}
3451
+		switch fieldNum {
3452
+		case 1:
3453
+			if wireType != 0 {
3454
+				return fmt.Errorf("proto: wrong wireType = %d for field Periods", wireType)
3455
+			}
3456
+			m.Periods = 0
3457
+			for shift := uint(0); ; shift += 7 {
3458
+				if shift >= 64 {
3459
+					return ErrIntOverflowMetrics
3460
+				}
3461
+				if iNdEx >= l {
3462
+					return io.ErrUnexpectedEOF
3463
+				}
3464
+				b := dAtA[iNdEx]
3465
+				iNdEx++
3466
+				m.Periods |= uint64(b&0x7F) << shift
3467
+				if b < 0x80 {
3468
+					break
3469
+				}
3470
+			}
3471
+		case 2:
3472
+			if wireType != 0 {
3473
+				return fmt.Errorf("proto: wrong wireType = %d for field ThrottledPeriods", wireType)
3474
+			}
3475
+			m.ThrottledPeriods = 0
3476
+			for shift := uint(0); ; shift += 7 {
3477
+				if shift >= 64 {
3478
+					return ErrIntOverflowMetrics
3479
+				}
3480
+				if iNdEx >= l {
3481
+					return io.ErrUnexpectedEOF
3482
+				}
3483
+				b := dAtA[iNdEx]
3484
+				iNdEx++
3485
+				m.ThrottledPeriods |= uint64(b&0x7F) << shift
3486
+				if b < 0x80 {
3487
+					break
3488
+				}
3489
+			}
3490
+		case 3:
3491
+			if wireType != 0 {
3492
+				return fmt.Errorf("proto: wrong wireType = %d for field ThrottledTime", wireType)
3493
+			}
3494
+			m.ThrottledTime = 0
3495
+			for shift := uint(0); ; shift += 7 {
3496
+				if shift >= 64 {
3497
+					return ErrIntOverflowMetrics
3498
+				}
3499
+				if iNdEx >= l {
3500
+					return io.ErrUnexpectedEOF
3501
+				}
3502
+				b := dAtA[iNdEx]
3503
+				iNdEx++
3504
+				m.ThrottledTime |= uint64(b&0x7F) << shift
3505
+				if b < 0x80 {
3506
+					break
3507
+				}
3508
+			}
3509
+		default:
3510
+			iNdEx = preIndex
3511
+			skippy, err := skipMetrics(dAtA[iNdEx:])
3512
+			if err != nil {
3513
+				return err
3514
+			}
3515
+			if skippy < 0 {
3516
+				return ErrInvalidLengthMetrics
3517
+			}
3518
+			if (iNdEx + skippy) < 0 {
3519
+				return ErrInvalidLengthMetrics
3520
+			}
3521
+			if (iNdEx + skippy) > l {
3522
+				return io.ErrUnexpectedEOF
3523
+			}
3524
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
3525
+			iNdEx += skippy
3526
+		}
3527
+	}
3528
+
3529
+	if iNdEx > l {
3530
+		return io.ErrUnexpectedEOF
3531
+	}
3532
+	return nil
3533
+}
3534
+func (m *MemoryStat) Unmarshal(dAtA []byte) error {
3535
+	l := len(dAtA)
3536
+	iNdEx := 0
3537
+	for iNdEx < l {
3538
+		preIndex := iNdEx
3539
+		var wire uint64
3540
+		for shift := uint(0); ; shift += 7 {
3541
+			if shift >= 64 {
3542
+				return ErrIntOverflowMetrics
3543
+			}
3544
+			if iNdEx >= l {
3545
+				return io.ErrUnexpectedEOF
3546
+			}
3547
+			b := dAtA[iNdEx]
3548
+			iNdEx++
3549
+			wire |= uint64(b&0x7F) << shift
3550
+			if b < 0x80 {
3551
+				break
3552
+			}
3553
+		}
3554
+		fieldNum := int32(wire >> 3)
3555
+		wireType := int(wire & 0x7)
3556
+		if wireType == 4 {
3557
+			return fmt.Errorf("proto: MemoryStat: wiretype end group for non-group")
3558
+		}
3559
+		if fieldNum <= 0 {
3560
+			return fmt.Errorf("proto: MemoryStat: illegal tag %d (wire type %d)", fieldNum, wire)
3561
+		}
3562
+		switch fieldNum {
3563
+		case 1:
3564
+			if wireType != 0 {
3565
+				return fmt.Errorf("proto: wrong wireType = %d for field Cache", wireType)
3566
+			}
3567
+			m.Cache = 0
3568
+			for shift := uint(0); ; shift += 7 {
3569
+				if shift >= 64 {
3570
+					return ErrIntOverflowMetrics
3571
+				}
3572
+				if iNdEx >= l {
3573
+					return io.ErrUnexpectedEOF
3574
+				}
3575
+				b := dAtA[iNdEx]
3576
+				iNdEx++
3577
+				m.Cache |= uint64(b&0x7F) << shift
3578
+				if b < 0x80 {
3579
+					break
3580
+				}
3581
+			}
3582
+		case 2:
3583
+			if wireType != 0 {
3584
+				return fmt.Errorf("proto: wrong wireType = %d for field RSS", wireType)
3585
+			}
3586
+			m.RSS = 0
3587
+			for shift := uint(0); ; shift += 7 {
3588
+				if shift >= 64 {
3589
+					return ErrIntOverflowMetrics
3590
+				}
3591
+				if iNdEx >= l {
3592
+					return io.ErrUnexpectedEOF
3593
+				}
3594
+				b := dAtA[iNdEx]
3595
+				iNdEx++
3596
+				m.RSS |= uint64(b&0x7F) << shift
3597
+				if b < 0x80 {
3598
+					break
3599
+				}
3600
+			}
3601
+		case 3:
3602
+			if wireType != 0 {
3603
+				return fmt.Errorf("proto: wrong wireType = %d for field RSSHuge", wireType)
3604
+			}
3605
+			m.RSSHuge = 0
3606
+			for shift := uint(0); ; shift += 7 {
3607
+				if shift >= 64 {
3608
+					return ErrIntOverflowMetrics
3609
+				}
3610
+				if iNdEx >= l {
3611
+					return io.ErrUnexpectedEOF
3612
+				}
3613
+				b := dAtA[iNdEx]
3614
+				iNdEx++
3615
+				m.RSSHuge |= uint64(b&0x7F) << shift
3616
+				if b < 0x80 {
3617
+					break
3618
+				}
3619
+			}
3620
+		case 4:
3621
+			if wireType != 0 {
3622
+				return fmt.Errorf("proto: wrong wireType = %d for field MappedFile", wireType)
3623
+			}
3624
+			m.MappedFile = 0
3625
+			for shift := uint(0); ; shift += 7 {
3626
+				if shift >= 64 {
3627
+					return ErrIntOverflowMetrics
3628
+				}
3629
+				if iNdEx >= l {
3630
+					return io.ErrUnexpectedEOF
3631
+				}
3632
+				b := dAtA[iNdEx]
3633
+				iNdEx++
3634
+				m.MappedFile |= uint64(b&0x7F) << shift
3635
+				if b < 0x80 {
3636
+					break
3637
+				}
3638
+			}
3639
+		case 5:
3640
+			if wireType != 0 {
3641
+				return fmt.Errorf("proto: wrong wireType = %d for field Dirty", wireType)
3642
+			}
3643
+			m.Dirty = 0
3644
+			for shift := uint(0); ; shift += 7 {
3645
+				if shift >= 64 {
3646
+					return ErrIntOverflowMetrics
3647
+				}
3648
+				if iNdEx >= l {
3649
+					return io.ErrUnexpectedEOF
3650
+				}
3651
+				b := dAtA[iNdEx]
3652
+				iNdEx++
3653
+				m.Dirty |= uint64(b&0x7F) << shift
3654
+				if b < 0x80 {
3655
+					break
3656
+				}
3657
+			}
3658
+		case 6:
3659
+			if wireType != 0 {
3660
+				return fmt.Errorf("proto: wrong wireType = %d for field Writeback", wireType)
3661
+			}
3662
+			m.Writeback = 0
3663
+			for shift := uint(0); ; shift += 7 {
3664
+				if shift >= 64 {
3665
+					return ErrIntOverflowMetrics
3666
+				}
3667
+				if iNdEx >= l {
3668
+					return io.ErrUnexpectedEOF
3669
+				}
3670
+				b := dAtA[iNdEx]
3671
+				iNdEx++
3672
+				m.Writeback |= uint64(b&0x7F) << shift
3673
+				if b < 0x80 {
3674
+					break
3675
+				}
3676
+			}
3677
+		case 7:
3678
+			if wireType != 0 {
3679
+				return fmt.Errorf("proto: wrong wireType = %d for field PgPgIn", wireType)
3680
+			}
3681
+			m.PgPgIn = 0
3682
+			for shift := uint(0); ; shift += 7 {
3683
+				if shift >= 64 {
3684
+					return ErrIntOverflowMetrics
3685
+				}
3686
+				if iNdEx >= l {
3687
+					return io.ErrUnexpectedEOF
3688
+				}
3689
+				b := dAtA[iNdEx]
3690
+				iNdEx++
3691
+				m.PgPgIn |= uint64(b&0x7F) << shift
3692
+				if b < 0x80 {
3693
+					break
3694
+				}
3695
+			}
3696
+		case 8:
3697
+			if wireType != 0 {
3698
+				return fmt.Errorf("proto: wrong wireType = %d for field PgPgOut", wireType)
3699
+			}
3700
+			m.PgPgOut = 0
3701
+			for shift := uint(0); ; shift += 7 {
3702
+				if shift >= 64 {
3703
+					return ErrIntOverflowMetrics
3704
+				}
3705
+				if iNdEx >= l {
3706
+					return io.ErrUnexpectedEOF
3707
+				}
3708
+				b := dAtA[iNdEx]
3709
+				iNdEx++
3710
+				m.PgPgOut |= uint64(b&0x7F) << shift
3711
+				if b < 0x80 {
3712
+					break
3713
+				}
3714
+			}
3715
+		case 9:
3716
+			if wireType != 0 {
3717
+				return fmt.Errorf("proto: wrong wireType = %d for field PgFault", wireType)
3718
+			}
3719
+			m.PgFault = 0
3720
+			for shift := uint(0); ; shift += 7 {
3721
+				if shift >= 64 {
3722
+					return ErrIntOverflowMetrics
3723
+				}
3724
+				if iNdEx >= l {
3725
+					return io.ErrUnexpectedEOF
3726
+				}
3727
+				b := dAtA[iNdEx]
3728
+				iNdEx++
3729
+				m.PgFault |= uint64(b&0x7F) << shift
3730
+				if b < 0x80 {
3731
+					break
3732
+				}
3733
+			}
3734
+		case 10:
3735
+			if wireType != 0 {
3736
+				return fmt.Errorf("proto: wrong wireType = %d for field PgMajFault", wireType)
3737
+			}
3738
+			m.PgMajFault = 0
3739
+			for shift := uint(0); ; shift += 7 {
3740
+				if shift >= 64 {
3741
+					return ErrIntOverflowMetrics
3742
+				}
3743
+				if iNdEx >= l {
3744
+					return io.ErrUnexpectedEOF
3745
+				}
3746
+				b := dAtA[iNdEx]
3747
+				iNdEx++
3748
+				m.PgMajFault |= uint64(b&0x7F) << shift
3749
+				if b < 0x80 {
3750
+					break
3751
+				}
3752
+			}
3753
+		case 11:
3754
+			if wireType != 0 {
3755
+				return fmt.Errorf("proto: wrong wireType = %d for field InactiveAnon", wireType)
3756
+			}
3757
+			m.InactiveAnon = 0
3758
+			for shift := uint(0); ; shift += 7 {
3759
+				if shift >= 64 {
3760
+					return ErrIntOverflowMetrics
3761
+				}
3762
+				if iNdEx >= l {
3763
+					return io.ErrUnexpectedEOF
3764
+				}
3765
+				b := dAtA[iNdEx]
3766
+				iNdEx++
3767
+				m.InactiveAnon |= uint64(b&0x7F) << shift
3768
+				if b < 0x80 {
3769
+					break
3770
+				}
3771
+			}
3772
+		case 12:
3773
+			if wireType != 0 {
3774
+				return fmt.Errorf("proto: wrong wireType = %d for field ActiveAnon", wireType)
3775
+			}
3776
+			m.ActiveAnon = 0
3777
+			for shift := uint(0); ; shift += 7 {
3778
+				if shift >= 64 {
3779
+					return ErrIntOverflowMetrics
3780
+				}
3781
+				if iNdEx >= l {
3782
+					return io.ErrUnexpectedEOF
3783
+				}
3784
+				b := dAtA[iNdEx]
3785
+				iNdEx++
3786
+				m.ActiveAnon |= uint64(b&0x7F) << shift
3787
+				if b < 0x80 {
3788
+					break
3789
+				}
3790
+			}
3791
+		case 13:
3792
+			if wireType != 0 {
3793
+				return fmt.Errorf("proto: wrong wireType = %d for field InactiveFile", wireType)
3794
+			}
3795
+			m.InactiveFile = 0
3796
+			for shift := uint(0); ; shift += 7 {
3797
+				if shift >= 64 {
3798
+					return ErrIntOverflowMetrics
3799
+				}
3800
+				if iNdEx >= l {
3801
+					return io.ErrUnexpectedEOF
3802
+				}
3803
+				b := dAtA[iNdEx]
3804
+				iNdEx++
3805
+				m.InactiveFile |= uint64(b&0x7F) << shift
3806
+				if b < 0x80 {
3807
+					break
3808
+				}
3809
+			}
3810
+		case 14:
3811
+			if wireType != 0 {
3812
+				return fmt.Errorf("proto: wrong wireType = %d for field ActiveFile", wireType)
3813
+			}
3814
+			m.ActiveFile = 0
3815
+			for shift := uint(0); ; shift += 7 {
3816
+				if shift >= 64 {
3817
+					return ErrIntOverflowMetrics
3818
+				}
3819
+				if iNdEx >= l {
3820
+					return io.ErrUnexpectedEOF
3821
+				}
3822
+				b := dAtA[iNdEx]
3823
+				iNdEx++
3824
+				m.ActiveFile |= uint64(b&0x7F) << shift
3825
+				if b < 0x80 {
3826
+					break
3827
+				}
3828
+			}
3829
+		case 15:
3830
+			if wireType != 0 {
3831
+				return fmt.Errorf("proto: wrong wireType = %d for field Unevictable", wireType)
3832
+			}
3833
+			m.Unevictable = 0
3834
+			for shift := uint(0); ; shift += 7 {
3835
+				if shift >= 64 {
3836
+					return ErrIntOverflowMetrics
3837
+				}
3838
+				if iNdEx >= l {
3839
+					return io.ErrUnexpectedEOF
3840
+				}
3841
+				b := dAtA[iNdEx]
3842
+				iNdEx++
3843
+				m.Unevictable |= uint64(b&0x7F) << shift
3844
+				if b < 0x80 {
3845
+					break
3846
+				}
3847
+			}
3848
+		case 16:
3849
+			if wireType != 0 {
3850
+				return fmt.Errorf("proto: wrong wireType = %d for field HierarchicalMemoryLimit", wireType)
3851
+			}
3852
+			m.HierarchicalMemoryLimit = 0
3853
+			for shift := uint(0); ; shift += 7 {
3854
+				if shift >= 64 {
3855
+					return ErrIntOverflowMetrics
3856
+				}
3857
+				if iNdEx >= l {
3858
+					return io.ErrUnexpectedEOF
3859
+				}
3860
+				b := dAtA[iNdEx]
3861
+				iNdEx++
3862
+				m.HierarchicalMemoryLimit |= uint64(b&0x7F) << shift
3863
+				if b < 0x80 {
3864
+					break
3865
+				}
3866
+			}
3867
+		case 17:
3868
+			if wireType != 0 {
3869
+				return fmt.Errorf("proto: wrong wireType = %d for field HierarchicalSwapLimit", wireType)
3870
+			}
3871
+			m.HierarchicalSwapLimit = 0
3872
+			for shift := uint(0); ; shift += 7 {
3873
+				if shift >= 64 {
3874
+					return ErrIntOverflowMetrics
3875
+				}
3876
+				if iNdEx >= l {
3877
+					return io.ErrUnexpectedEOF
3878
+				}
3879
+				b := dAtA[iNdEx]
3880
+				iNdEx++
3881
+				m.HierarchicalSwapLimit |= uint64(b&0x7F) << shift
3882
+				if b < 0x80 {
3883
+					break
3884
+				}
3885
+			}
3886
+		case 18:
3887
+			if wireType != 0 {
3888
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalCache", wireType)
3889
+			}
3890
+			m.TotalCache = 0
3891
+			for shift := uint(0); ; shift += 7 {
3892
+				if shift >= 64 {
3893
+					return ErrIntOverflowMetrics
3894
+				}
3895
+				if iNdEx >= l {
3896
+					return io.ErrUnexpectedEOF
3897
+				}
3898
+				b := dAtA[iNdEx]
3899
+				iNdEx++
3900
+				m.TotalCache |= uint64(b&0x7F) << shift
3901
+				if b < 0x80 {
3902
+					break
3903
+				}
3904
+			}
3905
+		case 19:
3906
+			if wireType != 0 {
3907
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalRSS", wireType)
3908
+			}
3909
+			m.TotalRSS = 0
3910
+			for shift := uint(0); ; shift += 7 {
3911
+				if shift >= 64 {
3912
+					return ErrIntOverflowMetrics
3913
+				}
3914
+				if iNdEx >= l {
3915
+					return io.ErrUnexpectedEOF
3916
+				}
3917
+				b := dAtA[iNdEx]
3918
+				iNdEx++
3919
+				m.TotalRSS |= uint64(b&0x7F) << shift
3920
+				if b < 0x80 {
3921
+					break
3922
+				}
3923
+			}
3924
+		case 20:
3925
+			if wireType != 0 {
3926
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalRSSHuge", wireType)
3927
+			}
3928
+			m.TotalRSSHuge = 0
3929
+			for shift := uint(0); ; shift += 7 {
3930
+				if shift >= 64 {
3931
+					return ErrIntOverflowMetrics
3932
+				}
3933
+				if iNdEx >= l {
3934
+					return io.ErrUnexpectedEOF
3935
+				}
3936
+				b := dAtA[iNdEx]
3937
+				iNdEx++
3938
+				m.TotalRSSHuge |= uint64(b&0x7F) << shift
3939
+				if b < 0x80 {
3940
+					break
3941
+				}
3942
+			}
3943
+		case 21:
3944
+			if wireType != 0 {
3945
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalMappedFile", wireType)
3946
+			}
3947
+			m.TotalMappedFile = 0
3948
+			for shift := uint(0); ; shift += 7 {
3949
+				if shift >= 64 {
3950
+					return ErrIntOverflowMetrics
3951
+				}
3952
+				if iNdEx >= l {
3953
+					return io.ErrUnexpectedEOF
3954
+				}
3955
+				b := dAtA[iNdEx]
3956
+				iNdEx++
3957
+				m.TotalMappedFile |= uint64(b&0x7F) << shift
3958
+				if b < 0x80 {
3959
+					break
3960
+				}
3961
+			}
3962
+		case 22:
3963
+			if wireType != 0 {
3964
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalDirty", wireType)
3965
+			}
3966
+			m.TotalDirty = 0
3967
+			for shift := uint(0); ; shift += 7 {
3968
+				if shift >= 64 {
3969
+					return ErrIntOverflowMetrics
3970
+				}
3971
+				if iNdEx >= l {
3972
+					return io.ErrUnexpectedEOF
3973
+				}
3974
+				b := dAtA[iNdEx]
3975
+				iNdEx++
3976
+				m.TotalDirty |= uint64(b&0x7F) << shift
3977
+				if b < 0x80 {
3978
+					break
3979
+				}
3980
+			}
3981
+		case 23:
3982
+			if wireType != 0 {
3983
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalWriteback", wireType)
3984
+			}
3985
+			m.TotalWriteback = 0
3986
+			for shift := uint(0); ; shift += 7 {
3987
+				if shift >= 64 {
3988
+					return ErrIntOverflowMetrics
3989
+				}
3990
+				if iNdEx >= l {
3991
+					return io.ErrUnexpectedEOF
3992
+				}
3993
+				b := dAtA[iNdEx]
3994
+				iNdEx++
3995
+				m.TotalWriteback |= uint64(b&0x7F) << shift
3996
+				if b < 0x80 {
3997
+					break
3998
+				}
3999
+			}
4000
+		case 24:
4001
+			if wireType != 0 {
4002
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgPgIn", wireType)
4003
+			}
4004
+			m.TotalPgPgIn = 0
4005
+			for shift := uint(0); ; shift += 7 {
4006
+				if shift >= 64 {
4007
+					return ErrIntOverflowMetrics
4008
+				}
4009
+				if iNdEx >= l {
4010
+					return io.ErrUnexpectedEOF
4011
+				}
4012
+				b := dAtA[iNdEx]
4013
+				iNdEx++
4014
+				m.TotalPgPgIn |= uint64(b&0x7F) << shift
4015
+				if b < 0x80 {
4016
+					break
4017
+				}
4018
+			}
4019
+		case 25:
4020
+			if wireType != 0 {
4021
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgPgOut", wireType)
4022
+			}
4023
+			m.TotalPgPgOut = 0
4024
+			for shift := uint(0); ; shift += 7 {
4025
+				if shift >= 64 {
4026
+					return ErrIntOverflowMetrics
4027
+				}
4028
+				if iNdEx >= l {
4029
+					return io.ErrUnexpectedEOF
4030
+				}
4031
+				b := dAtA[iNdEx]
4032
+				iNdEx++
4033
+				m.TotalPgPgOut |= uint64(b&0x7F) << shift
4034
+				if b < 0x80 {
4035
+					break
4036
+				}
4037
+			}
4038
+		case 26:
4039
+			if wireType != 0 {
4040
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgFault", wireType)
4041
+			}
4042
+			m.TotalPgFault = 0
4043
+			for shift := uint(0); ; shift += 7 {
4044
+				if shift >= 64 {
4045
+					return ErrIntOverflowMetrics
4046
+				}
4047
+				if iNdEx >= l {
4048
+					return io.ErrUnexpectedEOF
4049
+				}
4050
+				b := dAtA[iNdEx]
4051
+				iNdEx++
4052
+				m.TotalPgFault |= uint64(b&0x7F) << shift
4053
+				if b < 0x80 {
4054
+					break
4055
+				}
4056
+			}
4057
+		case 27:
4058
+			if wireType != 0 {
4059
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalPgMajFault", wireType)
4060
+			}
4061
+			m.TotalPgMajFault = 0
4062
+			for shift := uint(0); ; shift += 7 {
4063
+				if shift >= 64 {
4064
+					return ErrIntOverflowMetrics
4065
+				}
4066
+				if iNdEx >= l {
4067
+					return io.ErrUnexpectedEOF
4068
+				}
4069
+				b := dAtA[iNdEx]
4070
+				iNdEx++
4071
+				m.TotalPgMajFault |= uint64(b&0x7F) << shift
4072
+				if b < 0x80 {
4073
+					break
4074
+				}
4075
+			}
4076
+		case 28:
4077
+			if wireType != 0 {
4078
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalInactiveAnon", wireType)
4079
+			}
4080
+			m.TotalInactiveAnon = 0
4081
+			for shift := uint(0); ; shift += 7 {
4082
+				if shift >= 64 {
4083
+					return ErrIntOverflowMetrics
4084
+				}
4085
+				if iNdEx >= l {
4086
+					return io.ErrUnexpectedEOF
4087
+				}
4088
+				b := dAtA[iNdEx]
4089
+				iNdEx++
4090
+				m.TotalInactiveAnon |= uint64(b&0x7F) << shift
4091
+				if b < 0x80 {
4092
+					break
4093
+				}
4094
+			}
4095
+		case 29:
4096
+			if wireType != 0 {
4097
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalActiveAnon", wireType)
4098
+			}
4099
+			m.TotalActiveAnon = 0
4100
+			for shift := uint(0); ; shift += 7 {
4101
+				if shift >= 64 {
4102
+					return ErrIntOverflowMetrics
4103
+				}
4104
+				if iNdEx >= l {
4105
+					return io.ErrUnexpectedEOF
4106
+				}
4107
+				b := dAtA[iNdEx]
4108
+				iNdEx++
4109
+				m.TotalActiveAnon |= uint64(b&0x7F) << shift
4110
+				if b < 0x80 {
4111
+					break
4112
+				}
4113
+			}
4114
+		case 30:
4115
+			if wireType != 0 {
4116
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalInactiveFile", wireType)
4117
+			}
4118
+			m.TotalInactiveFile = 0
4119
+			for shift := uint(0); ; shift += 7 {
4120
+				if shift >= 64 {
4121
+					return ErrIntOverflowMetrics
4122
+				}
4123
+				if iNdEx >= l {
4124
+					return io.ErrUnexpectedEOF
4125
+				}
4126
+				b := dAtA[iNdEx]
4127
+				iNdEx++
4128
+				m.TotalInactiveFile |= uint64(b&0x7F) << shift
4129
+				if b < 0x80 {
4130
+					break
4131
+				}
4132
+			}
4133
+		case 31:
4134
+			if wireType != 0 {
4135
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalActiveFile", wireType)
4136
+			}
4137
+			m.TotalActiveFile = 0
4138
+			for shift := uint(0); ; shift += 7 {
4139
+				if shift >= 64 {
4140
+					return ErrIntOverflowMetrics
4141
+				}
4142
+				if iNdEx >= l {
4143
+					return io.ErrUnexpectedEOF
4144
+				}
4145
+				b := dAtA[iNdEx]
4146
+				iNdEx++
4147
+				m.TotalActiveFile |= uint64(b&0x7F) << shift
4148
+				if b < 0x80 {
4149
+					break
4150
+				}
4151
+			}
4152
+		case 32:
4153
+			if wireType != 0 {
4154
+				return fmt.Errorf("proto: wrong wireType = %d for field TotalUnevictable", wireType)
4155
+			}
4156
+			m.TotalUnevictable = 0
4157
+			for shift := uint(0); ; shift += 7 {
4158
+				if shift >= 64 {
4159
+					return ErrIntOverflowMetrics
4160
+				}
4161
+				if iNdEx >= l {
4162
+					return io.ErrUnexpectedEOF
4163
+				}
4164
+				b := dAtA[iNdEx]
4165
+				iNdEx++
4166
+				m.TotalUnevictable |= uint64(b&0x7F) << shift
4167
+				if b < 0x80 {
4168
+					break
4169
+				}
4170
+			}
4171
+		case 33:
4172
+			if wireType != 2 {
4173
+				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
4174
+			}
4175
+			var msglen int
4176
+			for shift := uint(0); ; shift += 7 {
4177
+				if shift >= 64 {
4178
+					return ErrIntOverflowMetrics
4179
+				}
4180
+				if iNdEx >= l {
4181
+					return io.ErrUnexpectedEOF
4182
+				}
4183
+				b := dAtA[iNdEx]
4184
+				iNdEx++
4185
+				msglen |= int(b&0x7F) << shift
4186
+				if b < 0x80 {
4187
+					break
4188
+				}
4189
+			}
4190
+			if msglen < 0 {
4191
+				return ErrInvalidLengthMetrics
4192
+			}
4193
+			postIndex := iNdEx + msglen
4194
+			if postIndex < 0 {
4195
+				return ErrInvalidLengthMetrics
4196
+			}
4197
+			if postIndex > l {
4198
+				return io.ErrUnexpectedEOF
4199
+			}
4200
+			if m.Usage == nil {
4201
+				m.Usage = &MemoryEntry{}
4202
+			}
4203
+			if err := m.Usage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4204
+				return err
4205
+			}
4206
+			iNdEx = postIndex
4207
+		case 34:
4208
+			if wireType != 2 {
4209
+				return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType)
4210
+			}
4211
+			var msglen int
4212
+			for shift := uint(0); ; shift += 7 {
4213
+				if shift >= 64 {
4214
+					return ErrIntOverflowMetrics
4215
+				}
4216
+				if iNdEx >= l {
4217
+					return io.ErrUnexpectedEOF
4218
+				}
4219
+				b := dAtA[iNdEx]
4220
+				iNdEx++
4221
+				msglen |= int(b&0x7F) << shift
4222
+				if b < 0x80 {
4223
+					break
4224
+				}
4225
+			}
4226
+			if msglen < 0 {
4227
+				return ErrInvalidLengthMetrics
4228
+			}
4229
+			postIndex := iNdEx + msglen
4230
+			if postIndex < 0 {
4231
+				return ErrInvalidLengthMetrics
4232
+			}
4233
+			if postIndex > l {
4234
+				return io.ErrUnexpectedEOF
4235
+			}
4236
+			if m.Swap == nil {
4237
+				m.Swap = &MemoryEntry{}
4238
+			}
4239
+			if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4240
+				return err
4241
+			}
4242
+			iNdEx = postIndex
4243
+		case 35:
4244
+			if wireType != 2 {
4245
+				return fmt.Errorf("proto: wrong wireType = %d for field Kernel", wireType)
4246
+			}
4247
+			var msglen int
4248
+			for shift := uint(0); ; shift += 7 {
4249
+				if shift >= 64 {
4250
+					return ErrIntOverflowMetrics
4251
+				}
4252
+				if iNdEx >= l {
4253
+					return io.ErrUnexpectedEOF
4254
+				}
4255
+				b := dAtA[iNdEx]
4256
+				iNdEx++
4257
+				msglen |= int(b&0x7F) << shift
4258
+				if b < 0x80 {
4259
+					break
4260
+				}
4261
+			}
4262
+			if msglen < 0 {
4263
+				return ErrInvalidLengthMetrics
4264
+			}
4265
+			postIndex := iNdEx + msglen
4266
+			if postIndex < 0 {
4267
+				return ErrInvalidLengthMetrics
4268
+			}
4269
+			if postIndex > l {
4270
+				return io.ErrUnexpectedEOF
4271
+			}
4272
+			if m.Kernel == nil {
4273
+				m.Kernel = &MemoryEntry{}
4274
+			}
4275
+			if err := m.Kernel.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4276
+				return err
4277
+			}
4278
+			iNdEx = postIndex
4279
+		case 36:
4280
+			if wireType != 2 {
4281
+				return fmt.Errorf("proto: wrong wireType = %d for field KernelTCP", wireType)
4282
+			}
4283
+			var msglen int
4284
+			for shift := uint(0); ; shift += 7 {
4285
+				if shift >= 64 {
4286
+					return ErrIntOverflowMetrics
4287
+				}
4288
+				if iNdEx >= l {
4289
+					return io.ErrUnexpectedEOF
4290
+				}
4291
+				b := dAtA[iNdEx]
4292
+				iNdEx++
4293
+				msglen |= int(b&0x7F) << shift
4294
+				if b < 0x80 {
4295
+					break
4296
+				}
4297
+			}
4298
+			if msglen < 0 {
4299
+				return ErrInvalidLengthMetrics
4300
+			}
4301
+			postIndex := iNdEx + msglen
4302
+			if postIndex < 0 {
4303
+				return ErrInvalidLengthMetrics
4304
+			}
4305
+			if postIndex > l {
4306
+				return io.ErrUnexpectedEOF
4307
+			}
4308
+			if m.KernelTCP == nil {
4309
+				m.KernelTCP = &MemoryEntry{}
4310
+			}
4311
+			if err := m.KernelTCP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4312
+				return err
4313
+			}
4314
+			iNdEx = postIndex
4315
+		default:
4316
+			iNdEx = preIndex
4317
+			skippy, err := skipMetrics(dAtA[iNdEx:])
4318
+			if err != nil {
4319
+				return err
4320
+			}
4321
+			if skippy < 0 {
4322
+				return ErrInvalidLengthMetrics
4323
+			}
4324
+			if (iNdEx + skippy) < 0 {
4325
+				return ErrInvalidLengthMetrics
4326
+			}
4327
+			if (iNdEx + skippy) > l {
4328
+				return io.ErrUnexpectedEOF
4329
+			}
4330
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4331
+			iNdEx += skippy
4332
+		}
4333
+	}
4334
+
4335
+	if iNdEx > l {
4336
+		return io.ErrUnexpectedEOF
4337
+	}
4338
+	return nil
4339
+}
4340
+func (m *MemoryEntry) Unmarshal(dAtA []byte) error {
4341
+	l := len(dAtA)
4342
+	iNdEx := 0
4343
+	for iNdEx < l {
4344
+		preIndex := iNdEx
4345
+		var wire uint64
4346
+		for shift := uint(0); ; shift += 7 {
4347
+			if shift >= 64 {
4348
+				return ErrIntOverflowMetrics
4349
+			}
4350
+			if iNdEx >= l {
4351
+				return io.ErrUnexpectedEOF
4352
+			}
4353
+			b := dAtA[iNdEx]
4354
+			iNdEx++
4355
+			wire |= uint64(b&0x7F) << shift
4356
+			if b < 0x80 {
4357
+				break
4358
+			}
4359
+		}
4360
+		fieldNum := int32(wire >> 3)
4361
+		wireType := int(wire & 0x7)
4362
+		if wireType == 4 {
4363
+			return fmt.Errorf("proto: MemoryEntry: wiretype end group for non-group")
4364
+		}
4365
+		if fieldNum <= 0 {
4366
+			return fmt.Errorf("proto: MemoryEntry: illegal tag %d (wire type %d)", fieldNum, wire)
4367
+		}
4368
+		switch fieldNum {
4369
+		case 1:
4370
+			if wireType != 0 {
4371
+				return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
4372
+			}
4373
+			m.Limit = 0
4374
+			for shift := uint(0); ; shift += 7 {
4375
+				if shift >= 64 {
4376
+					return ErrIntOverflowMetrics
4377
+				}
4378
+				if iNdEx >= l {
4379
+					return io.ErrUnexpectedEOF
4380
+				}
4381
+				b := dAtA[iNdEx]
4382
+				iNdEx++
4383
+				m.Limit |= uint64(b&0x7F) << shift
4384
+				if b < 0x80 {
4385
+					break
4386
+				}
4387
+			}
4388
+		case 2:
4389
+			if wireType != 0 {
4390
+				return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
4391
+			}
4392
+			m.Usage = 0
4393
+			for shift := uint(0); ; shift += 7 {
4394
+				if shift >= 64 {
4395
+					return ErrIntOverflowMetrics
4396
+				}
4397
+				if iNdEx >= l {
4398
+					return io.ErrUnexpectedEOF
4399
+				}
4400
+				b := dAtA[iNdEx]
4401
+				iNdEx++
4402
+				m.Usage |= uint64(b&0x7F) << shift
4403
+				if b < 0x80 {
4404
+					break
4405
+				}
4406
+			}
4407
+		case 3:
4408
+			if wireType != 0 {
4409
+				return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType)
4410
+			}
4411
+			m.Max = 0
4412
+			for shift := uint(0); ; shift += 7 {
4413
+				if shift >= 64 {
4414
+					return ErrIntOverflowMetrics
4415
+				}
4416
+				if iNdEx >= l {
4417
+					return io.ErrUnexpectedEOF
4418
+				}
4419
+				b := dAtA[iNdEx]
4420
+				iNdEx++
4421
+				m.Max |= uint64(b&0x7F) << shift
4422
+				if b < 0x80 {
4423
+					break
4424
+				}
4425
+			}
4426
+		case 4:
4427
+			if wireType != 0 {
4428
+				return fmt.Errorf("proto: wrong wireType = %d for field Failcnt", wireType)
4429
+			}
4430
+			m.Failcnt = 0
4431
+			for shift := uint(0); ; shift += 7 {
4432
+				if shift >= 64 {
4433
+					return ErrIntOverflowMetrics
4434
+				}
4435
+				if iNdEx >= l {
4436
+					return io.ErrUnexpectedEOF
4437
+				}
4438
+				b := dAtA[iNdEx]
4439
+				iNdEx++
4440
+				m.Failcnt |= uint64(b&0x7F) << shift
4441
+				if b < 0x80 {
4442
+					break
4443
+				}
4444
+			}
4445
+		default:
4446
+			iNdEx = preIndex
4447
+			skippy, err := skipMetrics(dAtA[iNdEx:])
4448
+			if err != nil {
4449
+				return err
4450
+			}
4451
+			if skippy < 0 {
4452
+				return ErrInvalidLengthMetrics
4453
+			}
4454
+			if (iNdEx + skippy) < 0 {
4455
+				return ErrInvalidLengthMetrics
4456
+			}
4457
+			if (iNdEx + skippy) > l {
4458
+				return io.ErrUnexpectedEOF
4459
+			}
4460
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4461
+			iNdEx += skippy
4462
+		}
4463
+	}
4464
+
4465
+	if iNdEx > l {
4466
+		return io.ErrUnexpectedEOF
4467
+	}
4468
+	return nil
4469
+}
4470
+func (m *BlkIOStat) Unmarshal(dAtA []byte) error {
4471
+	l := len(dAtA)
4472
+	iNdEx := 0
4473
+	for iNdEx < l {
4474
+		preIndex := iNdEx
4475
+		var wire uint64
4476
+		for shift := uint(0); ; shift += 7 {
4477
+			if shift >= 64 {
4478
+				return ErrIntOverflowMetrics
4479
+			}
4480
+			if iNdEx >= l {
4481
+				return io.ErrUnexpectedEOF
4482
+			}
4483
+			b := dAtA[iNdEx]
4484
+			iNdEx++
4485
+			wire |= uint64(b&0x7F) << shift
4486
+			if b < 0x80 {
4487
+				break
4488
+			}
4489
+		}
4490
+		fieldNum := int32(wire >> 3)
4491
+		wireType := int(wire & 0x7)
4492
+		if wireType == 4 {
4493
+			return fmt.Errorf("proto: BlkIOStat: wiretype end group for non-group")
4494
+		}
4495
+		if fieldNum <= 0 {
4496
+			return fmt.Errorf("proto: BlkIOStat: illegal tag %d (wire type %d)", fieldNum, wire)
4497
+		}
4498
+		switch fieldNum {
4499
+		case 1:
4500
+			if wireType != 2 {
4501
+				return fmt.Errorf("proto: wrong wireType = %d for field IoServiceBytesRecursive", wireType)
4502
+			}
4503
+			var msglen int
4504
+			for shift := uint(0); ; shift += 7 {
4505
+				if shift >= 64 {
4506
+					return ErrIntOverflowMetrics
4507
+				}
4508
+				if iNdEx >= l {
4509
+					return io.ErrUnexpectedEOF
4510
+				}
4511
+				b := dAtA[iNdEx]
4512
+				iNdEx++
4513
+				msglen |= int(b&0x7F) << shift
4514
+				if b < 0x80 {
4515
+					break
4516
+				}
4517
+			}
4518
+			if msglen < 0 {
4519
+				return ErrInvalidLengthMetrics
4520
+			}
4521
+			postIndex := iNdEx + msglen
4522
+			if postIndex < 0 {
4523
+				return ErrInvalidLengthMetrics
4524
+			}
4525
+			if postIndex > l {
4526
+				return io.ErrUnexpectedEOF
4527
+			}
4528
+			m.IoServiceBytesRecursive = append(m.IoServiceBytesRecursive, &BlkIOEntry{})
4529
+			if err := m.IoServiceBytesRecursive[len(m.IoServiceBytesRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4530
+				return err
4531
+			}
4532
+			iNdEx = postIndex
4533
+		case 2:
4534
+			if wireType != 2 {
4535
+				return fmt.Errorf("proto: wrong wireType = %d for field IoServicedRecursive", wireType)
4536
+			}
4537
+			var msglen int
4538
+			for shift := uint(0); ; shift += 7 {
4539
+				if shift >= 64 {
4540
+					return ErrIntOverflowMetrics
4541
+				}
4542
+				if iNdEx >= l {
4543
+					return io.ErrUnexpectedEOF
4544
+				}
4545
+				b := dAtA[iNdEx]
4546
+				iNdEx++
4547
+				msglen |= int(b&0x7F) << shift
4548
+				if b < 0x80 {
4549
+					break
4550
+				}
4551
+			}
4552
+			if msglen < 0 {
4553
+				return ErrInvalidLengthMetrics
4554
+			}
4555
+			postIndex := iNdEx + msglen
4556
+			if postIndex < 0 {
4557
+				return ErrInvalidLengthMetrics
4558
+			}
4559
+			if postIndex > l {
4560
+				return io.ErrUnexpectedEOF
4561
+			}
4562
+			m.IoServicedRecursive = append(m.IoServicedRecursive, &BlkIOEntry{})
4563
+			if err := m.IoServicedRecursive[len(m.IoServicedRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4564
+				return err
4565
+			}
4566
+			iNdEx = postIndex
4567
+		case 3:
4568
+			if wireType != 2 {
4569
+				return fmt.Errorf("proto: wrong wireType = %d for field IoQueuedRecursive", wireType)
4570
+			}
4571
+			var msglen int
4572
+			for shift := uint(0); ; shift += 7 {
4573
+				if shift >= 64 {
4574
+					return ErrIntOverflowMetrics
4575
+				}
4576
+				if iNdEx >= l {
4577
+					return io.ErrUnexpectedEOF
4578
+				}
4579
+				b := dAtA[iNdEx]
4580
+				iNdEx++
4581
+				msglen |= int(b&0x7F) << shift
4582
+				if b < 0x80 {
4583
+					break
4584
+				}
4585
+			}
4586
+			if msglen < 0 {
4587
+				return ErrInvalidLengthMetrics
4588
+			}
4589
+			postIndex := iNdEx + msglen
4590
+			if postIndex < 0 {
4591
+				return ErrInvalidLengthMetrics
4592
+			}
4593
+			if postIndex > l {
4594
+				return io.ErrUnexpectedEOF
4595
+			}
4596
+			m.IoQueuedRecursive = append(m.IoQueuedRecursive, &BlkIOEntry{})
4597
+			if err := m.IoQueuedRecursive[len(m.IoQueuedRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4598
+				return err
4599
+			}
4600
+			iNdEx = postIndex
4601
+		case 4:
4602
+			if wireType != 2 {
4603
+				return fmt.Errorf("proto: wrong wireType = %d for field IoServiceTimeRecursive", wireType)
4604
+			}
4605
+			var msglen int
4606
+			for shift := uint(0); ; shift += 7 {
4607
+				if shift >= 64 {
4608
+					return ErrIntOverflowMetrics
4609
+				}
4610
+				if iNdEx >= l {
4611
+					return io.ErrUnexpectedEOF
4612
+				}
4613
+				b := dAtA[iNdEx]
4614
+				iNdEx++
4615
+				msglen |= int(b&0x7F) << shift
4616
+				if b < 0x80 {
4617
+					break
4618
+				}
4619
+			}
4620
+			if msglen < 0 {
4621
+				return ErrInvalidLengthMetrics
4622
+			}
4623
+			postIndex := iNdEx + msglen
4624
+			if postIndex < 0 {
4625
+				return ErrInvalidLengthMetrics
4626
+			}
4627
+			if postIndex > l {
4628
+				return io.ErrUnexpectedEOF
4629
+			}
4630
+			m.IoServiceTimeRecursive = append(m.IoServiceTimeRecursive, &BlkIOEntry{})
4631
+			if err := m.IoServiceTimeRecursive[len(m.IoServiceTimeRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4632
+				return err
4633
+			}
4634
+			iNdEx = postIndex
4635
+		case 5:
4636
+			if wireType != 2 {
4637
+				return fmt.Errorf("proto: wrong wireType = %d for field IoWaitTimeRecursive", wireType)
4638
+			}
4639
+			var msglen int
4640
+			for shift := uint(0); ; shift += 7 {
4641
+				if shift >= 64 {
4642
+					return ErrIntOverflowMetrics
4643
+				}
4644
+				if iNdEx >= l {
4645
+					return io.ErrUnexpectedEOF
4646
+				}
4647
+				b := dAtA[iNdEx]
4648
+				iNdEx++
4649
+				msglen |= int(b&0x7F) << shift
4650
+				if b < 0x80 {
4651
+					break
4652
+				}
4653
+			}
4654
+			if msglen < 0 {
4655
+				return ErrInvalidLengthMetrics
4656
+			}
4657
+			postIndex := iNdEx + msglen
4658
+			if postIndex < 0 {
4659
+				return ErrInvalidLengthMetrics
4660
+			}
4661
+			if postIndex > l {
4662
+				return io.ErrUnexpectedEOF
4663
+			}
4664
+			m.IoWaitTimeRecursive = append(m.IoWaitTimeRecursive, &BlkIOEntry{})
4665
+			if err := m.IoWaitTimeRecursive[len(m.IoWaitTimeRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4666
+				return err
4667
+			}
4668
+			iNdEx = postIndex
4669
+		case 6:
4670
+			if wireType != 2 {
4671
+				return fmt.Errorf("proto: wrong wireType = %d for field IoMergedRecursive", wireType)
4672
+			}
4673
+			var msglen int
4674
+			for shift := uint(0); ; shift += 7 {
4675
+				if shift >= 64 {
4676
+					return ErrIntOverflowMetrics
4677
+				}
4678
+				if iNdEx >= l {
4679
+					return io.ErrUnexpectedEOF
4680
+				}
4681
+				b := dAtA[iNdEx]
4682
+				iNdEx++
4683
+				msglen |= int(b&0x7F) << shift
4684
+				if b < 0x80 {
4685
+					break
4686
+				}
4687
+			}
4688
+			if msglen < 0 {
4689
+				return ErrInvalidLengthMetrics
4690
+			}
4691
+			postIndex := iNdEx + msglen
4692
+			if postIndex < 0 {
4693
+				return ErrInvalidLengthMetrics
4694
+			}
4695
+			if postIndex > l {
4696
+				return io.ErrUnexpectedEOF
4697
+			}
4698
+			m.IoMergedRecursive = append(m.IoMergedRecursive, &BlkIOEntry{})
4699
+			if err := m.IoMergedRecursive[len(m.IoMergedRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4700
+				return err
4701
+			}
4702
+			iNdEx = postIndex
4703
+		case 7:
4704
+			if wireType != 2 {
4705
+				return fmt.Errorf("proto: wrong wireType = %d for field IoTimeRecursive", wireType)
4706
+			}
4707
+			var msglen int
4708
+			for shift := uint(0); ; shift += 7 {
4709
+				if shift >= 64 {
4710
+					return ErrIntOverflowMetrics
4711
+				}
4712
+				if iNdEx >= l {
4713
+					return io.ErrUnexpectedEOF
4714
+				}
4715
+				b := dAtA[iNdEx]
4716
+				iNdEx++
4717
+				msglen |= int(b&0x7F) << shift
4718
+				if b < 0x80 {
4719
+					break
4720
+				}
4721
+			}
4722
+			if msglen < 0 {
4723
+				return ErrInvalidLengthMetrics
4724
+			}
4725
+			postIndex := iNdEx + msglen
4726
+			if postIndex < 0 {
4727
+				return ErrInvalidLengthMetrics
4728
+			}
4729
+			if postIndex > l {
4730
+				return io.ErrUnexpectedEOF
4731
+			}
4732
+			m.IoTimeRecursive = append(m.IoTimeRecursive, &BlkIOEntry{})
4733
+			if err := m.IoTimeRecursive[len(m.IoTimeRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4734
+				return err
4735
+			}
4736
+			iNdEx = postIndex
4737
+		case 8:
4738
+			if wireType != 2 {
4739
+				return fmt.Errorf("proto: wrong wireType = %d for field SectorsRecursive", wireType)
4740
+			}
4741
+			var msglen int
4742
+			for shift := uint(0); ; shift += 7 {
4743
+				if shift >= 64 {
4744
+					return ErrIntOverflowMetrics
4745
+				}
4746
+				if iNdEx >= l {
4747
+					return io.ErrUnexpectedEOF
4748
+				}
4749
+				b := dAtA[iNdEx]
4750
+				iNdEx++
4751
+				msglen |= int(b&0x7F) << shift
4752
+				if b < 0x80 {
4753
+					break
4754
+				}
4755
+			}
4756
+			if msglen < 0 {
4757
+				return ErrInvalidLengthMetrics
4758
+			}
4759
+			postIndex := iNdEx + msglen
4760
+			if postIndex < 0 {
4761
+				return ErrInvalidLengthMetrics
4762
+			}
4763
+			if postIndex > l {
4764
+				return io.ErrUnexpectedEOF
4765
+			}
4766
+			m.SectorsRecursive = append(m.SectorsRecursive, &BlkIOEntry{})
4767
+			if err := m.SectorsRecursive[len(m.SectorsRecursive)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4768
+				return err
4769
+			}
4770
+			iNdEx = postIndex
4771
+		default:
4772
+			iNdEx = preIndex
4773
+			skippy, err := skipMetrics(dAtA[iNdEx:])
4774
+			if err != nil {
4775
+				return err
4776
+			}
4777
+			if skippy < 0 {
4778
+				return ErrInvalidLengthMetrics
4779
+			}
4780
+			if (iNdEx + skippy) < 0 {
4781
+				return ErrInvalidLengthMetrics
4782
+			}
4783
+			if (iNdEx + skippy) > l {
4784
+				return io.ErrUnexpectedEOF
4785
+			}
4786
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4787
+			iNdEx += skippy
4788
+		}
4789
+	}
4790
+
4791
+	if iNdEx > l {
4792
+		return io.ErrUnexpectedEOF
4793
+	}
4794
+	return nil
4795
+}
4796
+func (m *BlkIOEntry) Unmarshal(dAtA []byte) error {
4797
+	l := len(dAtA)
4798
+	iNdEx := 0
4799
+	for iNdEx < l {
4800
+		preIndex := iNdEx
4801
+		var wire uint64
4802
+		for shift := uint(0); ; shift += 7 {
4803
+			if shift >= 64 {
4804
+				return ErrIntOverflowMetrics
4805
+			}
4806
+			if iNdEx >= l {
4807
+				return io.ErrUnexpectedEOF
4808
+			}
4809
+			b := dAtA[iNdEx]
4810
+			iNdEx++
4811
+			wire |= uint64(b&0x7F) << shift
4812
+			if b < 0x80 {
4813
+				break
4814
+			}
4815
+		}
4816
+		fieldNum := int32(wire >> 3)
4817
+		wireType := int(wire & 0x7)
4818
+		if wireType == 4 {
4819
+			return fmt.Errorf("proto: BlkIOEntry: wiretype end group for non-group")
4820
+		}
4821
+		if fieldNum <= 0 {
4822
+			return fmt.Errorf("proto: BlkIOEntry: illegal tag %d (wire type %d)", fieldNum, wire)
4823
+		}
4824
+		switch fieldNum {
4825
+		case 1:
4826
+			if wireType != 2 {
4827
+				return fmt.Errorf("proto: wrong wireType = %d for field Op", wireType)
4828
+			}
4829
+			var stringLen uint64
4830
+			for shift := uint(0); ; shift += 7 {
4831
+				if shift >= 64 {
4832
+					return ErrIntOverflowMetrics
4833
+				}
4834
+				if iNdEx >= l {
4835
+					return io.ErrUnexpectedEOF
4836
+				}
4837
+				b := dAtA[iNdEx]
4838
+				iNdEx++
4839
+				stringLen |= uint64(b&0x7F) << shift
4840
+				if b < 0x80 {
4841
+					break
4842
+				}
4843
+			}
4844
+			intStringLen := int(stringLen)
4845
+			if intStringLen < 0 {
4846
+				return ErrInvalidLengthMetrics
4847
+			}
4848
+			postIndex := iNdEx + intStringLen
4849
+			if postIndex < 0 {
4850
+				return ErrInvalidLengthMetrics
4851
+			}
4852
+			if postIndex > l {
4853
+				return io.ErrUnexpectedEOF
4854
+			}
4855
+			m.Op = string(dAtA[iNdEx:postIndex])
4856
+			iNdEx = postIndex
4857
+		case 2:
4858
+			if wireType != 2 {
4859
+				return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
4860
+			}
4861
+			var stringLen uint64
4862
+			for shift := uint(0); ; shift += 7 {
4863
+				if shift >= 64 {
4864
+					return ErrIntOverflowMetrics
4865
+				}
4866
+				if iNdEx >= l {
4867
+					return io.ErrUnexpectedEOF
4868
+				}
4869
+				b := dAtA[iNdEx]
4870
+				iNdEx++
4871
+				stringLen |= uint64(b&0x7F) << shift
4872
+				if b < 0x80 {
4873
+					break
4874
+				}
4875
+			}
4876
+			intStringLen := int(stringLen)
4877
+			if intStringLen < 0 {
4878
+				return ErrInvalidLengthMetrics
4879
+			}
4880
+			postIndex := iNdEx + intStringLen
4881
+			if postIndex < 0 {
4882
+				return ErrInvalidLengthMetrics
4883
+			}
4884
+			if postIndex > l {
4885
+				return io.ErrUnexpectedEOF
4886
+			}
4887
+			m.Device = string(dAtA[iNdEx:postIndex])
4888
+			iNdEx = postIndex
4889
+		case 3:
4890
+			if wireType != 0 {
4891
+				return fmt.Errorf("proto: wrong wireType = %d for field Major", wireType)
4892
+			}
4893
+			m.Major = 0
4894
+			for shift := uint(0); ; shift += 7 {
4895
+				if shift >= 64 {
4896
+					return ErrIntOverflowMetrics
4897
+				}
4898
+				if iNdEx >= l {
4899
+					return io.ErrUnexpectedEOF
4900
+				}
4901
+				b := dAtA[iNdEx]
4902
+				iNdEx++
4903
+				m.Major |= uint64(b&0x7F) << shift
4904
+				if b < 0x80 {
4905
+					break
4906
+				}
4907
+			}
4908
+		case 4:
4909
+			if wireType != 0 {
4910
+				return fmt.Errorf("proto: wrong wireType = %d for field Minor", wireType)
4911
+			}
4912
+			m.Minor = 0
4913
+			for shift := uint(0); ; shift += 7 {
4914
+				if shift >= 64 {
4915
+					return ErrIntOverflowMetrics
4916
+				}
4917
+				if iNdEx >= l {
4918
+					return io.ErrUnexpectedEOF
4919
+				}
4920
+				b := dAtA[iNdEx]
4921
+				iNdEx++
4922
+				m.Minor |= uint64(b&0x7F) << shift
4923
+				if b < 0x80 {
4924
+					break
4925
+				}
4926
+			}
4927
+		case 5:
4928
+			if wireType != 0 {
4929
+				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
4930
+			}
4931
+			m.Value = 0
4932
+			for shift := uint(0); ; shift += 7 {
4933
+				if shift >= 64 {
4934
+					return ErrIntOverflowMetrics
4935
+				}
4936
+				if iNdEx >= l {
4937
+					return io.ErrUnexpectedEOF
4938
+				}
4939
+				b := dAtA[iNdEx]
4940
+				iNdEx++
4941
+				m.Value |= uint64(b&0x7F) << shift
4942
+				if b < 0x80 {
4943
+					break
4944
+				}
4945
+			}
4946
+		default:
4947
+			iNdEx = preIndex
4948
+			skippy, err := skipMetrics(dAtA[iNdEx:])
4949
+			if err != nil {
4950
+				return err
4951
+			}
4952
+			if skippy < 0 {
4953
+				return ErrInvalidLengthMetrics
4954
+			}
4955
+			if (iNdEx + skippy) < 0 {
4956
+				return ErrInvalidLengthMetrics
4957
+			}
4958
+			if (iNdEx + skippy) > l {
4959
+				return io.ErrUnexpectedEOF
4960
+			}
4961
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
4962
+			iNdEx += skippy
4963
+		}
4964
+	}
4965
+
4966
+	if iNdEx > l {
4967
+		return io.ErrUnexpectedEOF
4968
+	}
4969
+	return nil
4970
+}
4971
+func (m *RdmaStat) Unmarshal(dAtA []byte) error {
4972
+	l := len(dAtA)
4973
+	iNdEx := 0
4974
+	for iNdEx < l {
4975
+		preIndex := iNdEx
4976
+		var wire uint64
4977
+		for shift := uint(0); ; shift += 7 {
4978
+			if shift >= 64 {
4979
+				return ErrIntOverflowMetrics
4980
+			}
4981
+			if iNdEx >= l {
4982
+				return io.ErrUnexpectedEOF
4983
+			}
4984
+			b := dAtA[iNdEx]
4985
+			iNdEx++
4986
+			wire |= uint64(b&0x7F) << shift
4987
+			if b < 0x80 {
4988
+				break
4989
+			}
4990
+		}
4991
+		fieldNum := int32(wire >> 3)
4992
+		wireType := int(wire & 0x7)
4993
+		if wireType == 4 {
4994
+			return fmt.Errorf("proto: RdmaStat: wiretype end group for non-group")
4995
+		}
4996
+		if fieldNum <= 0 {
4997
+			return fmt.Errorf("proto: RdmaStat: illegal tag %d (wire type %d)", fieldNum, wire)
4998
+		}
4999
+		switch fieldNum {
5000
+		case 1:
5001
+			if wireType != 2 {
5002
+				return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
5003
+			}
5004
+			var msglen int
5005
+			for shift := uint(0); ; shift += 7 {
5006
+				if shift >= 64 {
5007
+					return ErrIntOverflowMetrics
5008
+				}
5009
+				if iNdEx >= l {
5010
+					return io.ErrUnexpectedEOF
5011
+				}
5012
+				b := dAtA[iNdEx]
5013
+				iNdEx++
5014
+				msglen |= int(b&0x7F) << shift
5015
+				if b < 0x80 {
5016
+					break
5017
+				}
5018
+			}
5019
+			if msglen < 0 {
5020
+				return ErrInvalidLengthMetrics
5021
+			}
5022
+			postIndex := iNdEx + msglen
5023
+			if postIndex < 0 {
5024
+				return ErrInvalidLengthMetrics
5025
+			}
5026
+			if postIndex > l {
5027
+				return io.ErrUnexpectedEOF
5028
+			}
5029
+			m.Current = append(m.Current, &RdmaEntry{})
5030
+			if err := m.Current[len(m.Current)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
5031
+				return err
5032
+			}
5033
+			iNdEx = postIndex
5034
+		case 2:
5035
+			if wireType != 2 {
5036
+				return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
5037
+			}
5038
+			var msglen int
5039
+			for shift := uint(0); ; shift += 7 {
5040
+				if shift >= 64 {
5041
+					return ErrIntOverflowMetrics
5042
+				}
5043
+				if iNdEx >= l {
5044
+					return io.ErrUnexpectedEOF
5045
+				}
5046
+				b := dAtA[iNdEx]
5047
+				iNdEx++
5048
+				msglen |= int(b&0x7F) << shift
5049
+				if b < 0x80 {
5050
+					break
5051
+				}
5052
+			}
5053
+			if msglen < 0 {
5054
+				return ErrInvalidLengthMetrics
5055
+			}
5056
+			postIndex := iNdEx + msglen
5057
+			if postIndex < 0 {
5058
+				return ErrInvalidLengthMetrics
5059
+			}
5060
+			if postIndex > l {
5061
+				return io.ErrUnexpectedEOF
5062
+			}
5063
+			m.Limit = append(m.Limit, &RdmaEntry{})
5064
+			if err := m.Limit[len(m.Limit)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
5065
+				return err
5066
+			}
5067
+			iNdEx = postIndex
5068
+		default:
5069
+			iNdEx = preIndex
5070
+			skippy, err := skipMetrics(dAtA[iNdEx:])
5071
+			if err != nil {
5072
+				return err
5073
+			}
5074
+			if skippy < 0 {
5075
+				return ErrInvalidLengthMetrics
5076
+			}
5077
+			if (iNdEx + skippy) < 0 {
5078
+				return ErrInvalidLengthMetrics
5079
+			}
5080
+			if (iNdEx + skippy) > l {
5081
+				return io.ErrUnexpectedEOF
5082
+			}
5083
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
5084
+			iNdEx += skippy
5085
+		}
5086
+	}
5087
+
5088
+	if iNdEx > l {
5089
+		return io.ErrUnexpectedEOF
5090
+	}
5091
+	return nil
5092
+}
5093
+func (m *RdmaEntry) Unmarshal(dAtA []byte) error {
5094
+	l := len(dAtA)
5095
+	iNdEx := 0
5096
+	for iNdEx < l {
5097
+		preIndex := iNdEx
5098
+		var wire uint64
5099
+		for shift := uint(0); ; shift += 7 {
5100
+			if shift >= 64 {
5101
+				return ErrIntOverflowMetrics
5102
+			}
5103
+			if iNdEx >= l {
5104
+				return io.ErrUnexpectedEOF
5105
+			}
5106
+			b := dAtA[iNdEx]
5107
+			iNdEx++
5108
+			wire |= uint64(b&0x7F) << shift
5109
+			if b < 0x80 {
5110
+				break
5111
+			}
5112
+		}
5113
+		fieldNum := int32(wire >> 3)
5114
+		wireType := int(wire & 0x7)
5115
+		if wireType == 4 {
5116
+			return fmt.Errorf("proto: RdmaEntry: wiretype end group for non-group")
5117
+		}
5118
+		if fieldNum <= 0 {
5119
+			return fmt.Errorf("proto: RdmaEntry: illegal tag %d (wire type %d)", fieldNum, wire)
5120
+		}
5121
+		switch fieldNum {
5122
+		case 1:
5123
+			if wireType != 2 {
5124
+				return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
5125
+			}
5126
+			var stringLen uint64
5127
+			for shift := uint(0); ; shift += 7 {
5128
+				if shift >= 64 {
5129
+					return ErrIntOverflowMetrics
5130
+				}
5131
+				if iNdEx >= l {
5132
+					return io.ErrUnexpectedEOF
5133
+				}
5134
+				b := dAtA[iNdEx]
5135
+				iNdEx++
5136
+				stringLen |= uint64(b&0x7F) << shift
5137
+				if b < 0x80 {
5138
+					break
5139
+				}
5140
+			}
5141
+			intStringLen := int(stringLen)
5142
+			if intStringLen < 0 {
5143
+				return ErrInvalidLengthMetrics
5144
+			}
5145
+			postIndex := iNdEx + intStringLen
5146
+			if postIndex < 0 {
5147
+				return ErrInvalidLengthMetrics
5148
+			}
5149
+			if postIndex > l {
5150
+				return io.ErrUnexpectedEOF
5151
+			}
5152
+			m.Device = string(dAtA[iNdEx:postIndex])
5153
+			iNdEx = postIndex
5154
+		case 2:
5155
+			if wireType != 0 {
5156
+				return fmt.Errorf("proto: wrong wireType = %d for field HcaHandles", wireType)
5157
+			}
5158
+			m.HcaHandles = 0
5159
+			for shift := uint(0); ; shift += 7 {
5160
+				if shift >= 64 {
5161
+					return ErrIntOverflowMetrics
5162
+				}
5163
+				if iNdEx >= l {
5164
+					return io.ErrUnexpectedEOF
5165
+				}
5166
+				b := dAtA[iNdEx]
5167
+				iNdEx++
5168
+				m.HcaHandles |= uint32(b&0x7F) << shift
5169
+				if b < 0x80 {
5170
+					break
5171
+				}
5172
+			}
5173
+		case 3:
5174
+			if wireType != 0 {
5175
+				return fmt.Errorf("proto: wrong wireType = %d for field HcaObjects", wireType)
5176
+			}
5177
+			m.HcaObjects = 0
5178
+			for shift := uint(0); ; shift += 7 {
5179
+				if shift >= 64 {
5180
+					return ErrIntOverflowMetrics
5181
+				}
5182
+				if iNdEx >= l {
5183
+					return io.ErrUnexpectedEOF
5184
+				}
5185
+				b := dAtA[iNdEx]
5186
+				iNdEx++
5187
+				m.HcaObjects |= uint32(b&0x7F) << shift
5188
+				if b < 0x80 {
5189
+					break
5190
+				}
5191
+			}
5192
+		default:
5193
+			iNdEx = preIndex
5194
+			skippy, err := skipMetrics(dAtA[iNdEx:])
5195
+			if err != nil {
5196
+				return err
5197
+			}
5198
+			if skippy < 0 {
5199
+				return ErrInvalidLengthMetrics
5200
+			}
5201
+			if (iNdEx + skippy) < 0 {
5202
+				return ErrInvalidLengthMetrics
5203
+			}
5204
+			if (iNdEx + skippy) > l {
5205
+				return io.ErrUnexpectedEOF
5206
+			}
5207
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
5208
+			iNdEx += skippy
5209
+		}
5210
+	}
5211
+
5212
+	if iNdEx > l {
5213
+		return io.ErrUnexpectedEOF
5214
+	}
5215
+	return nil
5216
+}
5217
+func (m *NetworkStat) Unmarshal(dAtA []byte) error {
5218
+	l := len(dAtA)
5219
+	iNdEx := 0
5220
+	for iNdEx < l {
5221
+		preIndex := iNdEx
5222
+		var wire uint64
5223
+		for shift := uint(0); ; shift += 7 {
5224
+			if shift >= 64 {
5225
+				return ErrIntOverflowMetrics
5226
+			}
5227
+			if iNdEx >= l {
5228
+				return io.ErrUnexpectedEOF
5229
+			}
5230
+			b := dAtA[iNdEx]
5231
+			iNdEx++
5232
+			wire |= uint64(b&0x7F) << shift
5233
+			if b < 0x80 {
5234
+				break
5235
+			}
5236
+		}
5237
+		fieldNum := int32(wire >> 3)
5238
+		wireType := int(wire & 0x7)
5239
+		if wireType == 4 {
5240
+			return fmt.Errorf("proto: NetworkStat: wiretype end group for non-group")
5241
+		}
5242
+		if fieldNum <= 0 {
5243
+			return fmt.Errorf("proto: NetworkStat: illegal tag %d (wire type %d)", fieldNum, wire)
5244
+		}
5245
+		switch fieldNum {
5246
+		case 1:
5247
+			if wireType != 2 {
5248
+				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
5249
+			}
5250
+			var stringLen uint64
5251
+			for shift := uint(0); ; shift += 7 {
5252
+				if shift >= 64 {
5253
+					return ErrIntOverflowMetrics
5254
+				}
5255
+				if iNdEx >= l {
5256
+					return io.ErrUnexpectedEOF
5257
+				}
5258
+				b := dAtA[iNdEx]
5259
+				iNdEx++
5260
+				stringLen |= uint64(b&0x7F) << shift
5261
+				if b < 0x80 {
5262
+					break
5263
+				}
5264
+			}
5265
+			intStringLen := int(stringLen)
5266
+			if intStringLen < 0 {
5267
+				return ErrInvalidLengthMetrics
5268
+			}
5269
+			postIndex := iNdEx + intStringLen
5270
+			if postIndex < 0 {
5271
+				return ErrInvalidLengthMetrics
5272
+			}
5273
+			if postIndex > l {
5274
+				return io.ErrUnexpectedEOF
5275
+			}
5276
+			m.Name = string(dAtA[iNdEx:postIndex])
5277
+			iNdEx = postIndex
5278
+		case 2:
5279
+			if wireType != 0 {
5280
+				return fmt.Errorf("proto: wrong wireType = %d for field RxBytes", wireType)
5281
+			}
5282
+			m.RxBytes = 0
5283
+			for shift := uint(0); ; shift += 7 {
5284
+				if shift >= 64 {
5285
+					return ErrIntOverflowMetrics
5286
+				}
5287
+				if iNdEx >= l {
5288
+					return io.ErrUnexpectedEOF
5289
+				}
5290
+				b := dAtA[iNdEx]
5291
+				iNdEx++
5292
+				m.RxBytes |= uint64(b&0x7F) << shift
5293
+				if b < 0x80 {
5294
+					break
5295
+				}
5296
+			}
5297
+		case 3:
5298
+			if wireType != 0 {
5299
+				return fmt.Errorf("proto: wrong wireType = %d for field RxPackets", wireType)
5300
+			}
5301
+			m.RxPackets = 0
5302
+			for shift := uint(0); ; shift += 7 {
5303
+				if shift >= 64 {
5304
+					return ErrIntOverflowMetrics
5305
+				}
5306
+				if iNdEx >= l {
5307
+					return io.ErrUnexpectedEOF
5308
+				}
5309
+				b := dAtA[iNdEx]
5310
+				iNdEx++
5311
+				m.RxPackets |= uint64(b&0x7F) << shift
5312
+				if b < 0x80 {
5313
+					break
5314
+				}
5315
+			}
5316
+		case 4:
5317
+			if wireType != 0 {
5318
+				return fmt.Errorf("proto: wrong wireType = %d for field RxErrors", wireType)
5319
+			}
5320
+			m.RxErrors = 0
5321
+			for shift := uint(0); ; shift += 7 {
5322
+				if shift >= 64 {
5323
+					return ErrIntOverflowMetrics
5324
+				}
5325
+				if iNdEx >= l {
5326
+					return io.ErrUnexpectedEOF
5327
+				}
5328
+				b := dAtA[iNdEx]
5329
+				iNdEx++
5330
+				m.RxErrors |= uint64(b&0x7F) << shift
5331
+				if b < 0x80 {
5332
+					break
5333
+				}
5334
+			}
5335
+		case 5:
5336
+			if wireType != 0 {
5337
+				return fmt.Errorf("proto: wrong wireType = %d for field RxDropped", wireType)
5338
+			}
5339
+			m.RxDropped = 0
5340
+			for shift := uint(0); ; shift += 7 {
5341
+				if shift >= 64 {
5342
+					return ErrIntOverflowMetrics
5343
+				}
5344
+				if iNdEx >= l {
5345
+					return io.ErrUnexpectedEOF
5346
+				}
5347
+				b := dAtA[iNdEx]
5348
+				iNdEx++
5349
+				m.RxDropped |= uint64(b&0x7F) << shift
5350
+				if b < 0x80 {
5351
+					break
5352
+				}
5353
+			}
5354
+		case 6:
5355
+			if wireType != 0 {
5356
+				return fmt.Errorf("proto: wrong wireType = %d for field TxBytes", wireType)
5357
+			}
5358
+			m.TxBytes = 0
5359
+			for shift := uint(0); ; shift += 7 {
5360
+				if shift >= 64 {
5361
+					return ErrIntOverflowMetrics
5362
+				}
5363
+				if iNdEx >= l {
5364
+					return io.ErrUnexpectedEOF
5365
+				}
5366
+				b := dAtA[iNdEx]
5367
+				iNdEx++
5368
+				m.TxBytes |= uint64(b&0x7F) << shift
5369
+				if b < 0x80 {
5370
+					break
5371
+				}
5372
+			}
5373
+		case 7:
5374
+			if wireType != 0 {
5375
+				return fmt.Errorf("proto: wrong wireType = %d for field TxPackets", wireType)
5376
+			}
5377
+			m.TxPackets = 0
5378
+			for shift := uint(0); ; shift += 7 {
5379
+				if shift >= 64 {
5380
+					return ErrIntOverflowMetrics
5381
+				}
5382
+				if iNdEx >= l {
5383
+					return io.ErrUnexpectedEOF
5384
+				}
5385
+				b := dAtA[iNdEx]
5386
+				iNdEx++
5387
+				m.TxPackets |= uint64(b&0x7F) << shift
5388
+				if b < 0x80 {
5389
+					break
5390
+				}
5391
+			}
5392
+		case 8:
5393
+			if wireType != 0 {
5394
+				return fmt.Errorf("proto: wrong wireType = %d for field TxErrors", wireType)
5395
+			}
5396
+			m.TxErrors = 0
5397
+			for shift := uint(0); ; shift += 7 {
5398
+				if shift >= 64 {
5399
+					return ErrIntOverflowMetrics
5400
+				}
5401
+				if iNdEx >= l {
5402
+					return io.ErrUnexpectedEOF
5403
+				}
5404
+				b := dAtA[iNdEx]
5405
+				iNdEx++
5406
+				m.TxErrors |= uint64(b&0x7F) << shift
5407
+				if b < 0x80 {
5408
+					break
5409
+				}
5410
+			}
5411
+		case 9:
5412
+			if wireType != 0 {
5413
+				return fmt.Errorf("proto: wrong wireType = %d for field TxDropped", wireType)
5414
+			}
5415
+			m.TxDropped = 0
5416
+			for shift := uint(0); ; shift += 7 {
5417
+				if shift >= 64 {
5418
+					return ErrIntOverflowMetrics
5419
+				}
5420
+				if iNdEx >= l {
5421
+					return io.ErrUnexpectedEOF
5422
+				}
5423
+				b := dAtA[iNdEx]
5424
+				iNdEx++
5425
+				m.TxDropped |= uint64(b&0x7F) << shift
5426
+				if b < 0x80 {
5427
+					break
5428
+				}
5429
+			}
5430
+		default:
5431
+			iNdEx = preIndex
5432
+			skippy, err := skipMetrics(dAtA[iNdEx:])
5433
+			if err != nil {
5434
+				return err
5435
+			}
5436
+			if skippy < 0 {
5437
+				return ErrInvalidLengthMetrics
5438
+			}
5439
+			if (iNdEx + skippy) < 0 {
5440
+				return ErrInvalidLengthMetrics
5441
+			}
5442
+			if (iNdEx + skippy) > l {
5443
+				return io.ErrUnexpectedEOF
5444
+			}
5445
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
5446
+			iNdEx += skippy
5447
+		}
5448
+	}
5449
+
5450
+	if iNdEx > l {
5451
+		return io.ErrUnexpectedEOF
5452
+	}
5453
+	return nil
5454
+}
5455
+func (m *CgroupStats) Unmarshal(dAtA []byte) error {
5456
+	l := len(dAtA)
5457
+	iNdEx := 0
5458
+	for iNdEx < l {
5459
+		preIndex := iNdEx
5460
+		var wire uint64
5461
+		for shift := uint(0); ; shift += 7 {
5462
+			if shift >= 64 {
5463
+				return ErrIntOverflowMetrics
5464
+			}
5465
+			if iNdEx >= l {
5466
+				return io.ErrUnexpectedEOF
5467
+			}
5468
+			b := dAtA[iNdEx]
5469
+			iNdEx++
5470
+			wire |= uint64(b&0x7F) << shift
5471
+			if b < 0x80 {
5472
+				break
5473
+			}
5474
+		}
5475
+		fieldNum := int32(wire >> 3)
5476
+		wireType := int(wire & 0x7)
5477
+		if wireType == 4 {
5478
+			return fmt.Errorf("proto: CgroupStats: wiretype end group for non-group")
5479
+		}
5480
+		if fieldNum <= 0 {
5481
+			return fmt.Errorf("proto: CgroupStats: illegal tag %d (wire type %d)", fieldNum, wire)
5482
+		}
5483
+		switch fieldNum {
5484
+		case 1:
5485
+			if wireType != 0 {
5486
+				return fmt.Errorf("proto: wrong wireType = %d for field NrSleeping", wireType)
5487
+			}
5488
+			m.NrSleeping = 0
5489
+			for shift := uint(0); ; shift += 7 {
5490
+				if shift >= 64 {
5491
+					return ErrIntOverflowMetrics
5492
+				}
5493
+				if iNdEx >= l {
5494
+					return io.ErrUnexpectedEOF
5495
+				}
5496
+				b := dAtA[iNdEx]
5497
+				iNdEx++
5498
+				m.NrSleeping |= uint64(b&0x7F) << shift
5499
+				if b < 0x80 {
5500
+					break
5501
+				}
5502
+			}
5503
+		case 2:
5504
+			if wireType != 0 {
5505
+				return fmt.Errorf("proto: wrong wireType = %d for field NrRunning", wireType)
5506
+			}
5507
+			m.NrRunning = 0
5508
+			for shift := uint(0); ; shift += 7 {
5509
+				if shift >= 64 {
5510
+					return ErrIntOverflowMetrics
5511
+				}
5512
+				if iNdEx >= l {
5513
+					return io.ErrUnexpectedEOF
5514
+				}
5515
+				b := dAtA[iNdEx]
5516
+				iNdEx++
5517
+				m.NrRunning |= uint64(b&0x7F) << shift
5518
+				if b < 0x80 {
5519
+					break
5520
+				}
5521
+			}
5522
+		case 3:
5523
+			if wireType != 0 {
5524
+				return fmt.Errorf("proto: wrong wireType = %d for field NrStopped", wireType)
5525
+			}
5526
+			m.NrStopped = 0
5527
+			for shift := uint(0); ; shift += 7 {
5528
+				if shift >= 64 {
5529
+					return ErrIntOverflowMetrics
5530
+				}
5531
+				if iNdEx >= l {
5532
+					return io.ErrUnexpectedEOF
5533
+				}
5534
+				b := dAtA[iNdEx]
5535
+				iNdEx++
5536
+				m.NrStopped |= uint64(b&0x7F) << shift
5537
+				if b < 0x80 {
5538
+					break
5539
+				}
5540
+			}
5541
+		case 4:
5542
+			if wireType != 0 {
5543
+				return fmt.Errorf("proto: wrong wireType = %d for field NrUninterruptible", wireType)
5544
+			}
5545
+			m.NrUninterruptible = 0
5546
+			for shift := uint(0); ; shift += 7 {
5547
+				if shift >= 64 {
5548
+					return ErrIntOverflowMetrics
5549
+				}
5550
+				if iNdEx >= l {
5551
+					return io.ErrUnexpectedEOF
5552
+				}
5553
+				b := dAtA[iNdEx]
5554
+				iNdEx++
5555
+				m.NrUninterruptible |= uint64(b&0x7F) << shift
5556
+				if b < 0x80 {
5557
+					break
5558
+				}
5559
+			}
5560
+		case 5:
5561
+			if wireType != 0 {
5562
+				return fmt.Errorf("proto: wrong wireType = %d for field NrIoWait", wireType)
5563
+			}
5564
+			m.NrIoWait = 0
5565
+			for shift := uint(0); ; shift += 7 {
5566
+				if shift >= 64 {
5567
+					return ErrIntOverflowMetrics
5568
+				}
5569
+				if iNdEx >= l {
5570
+					return io.ErrUnexpectedEOF
5571
+				}
5572
+				b := dAtA[iNdEx]
5573
+				iNdEx++
5574
+				m.NrIoWait |= uint64(b&0x7F) << shift
5575
+				if b < 0x80 {
5576
+					break
5577
+				}
5578
+			}
5579
+		default:
5580
+			iNdEx = preIndex
5581
+			skippy, err := skipMetrics(dAtA[iNdEx:])
5582
+			if err != nil {
5583
+				return err
5584
+			}
5585
+			if skippy < 0 {
5586
+				return ErrInvalidLengthMetrics
5587
+			}
5588
+			if (iNdEx + skippy) < 0 {
5589
+				return ErrInvalidLengthMetrics
5590
+			}
5591
+			if (iNdEx + skippy) > l {
5592
+				return io.ErrUnexpectedEOF
5593
+			}
5594
+			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
5595
+			iNdEx += skippy
5596
+		}
5597
+	}
5598
+
5599
+	if iNdEx > l {
5600
+		return io.ErrUnexpectedEOF
5601
+	}
5602
+	return nil
5603
+}
5604
+func skipMetrics(dAtA []byte) (n int, err error) {
5605
+	l := len(dAtA)
5606
+	iNdEx := 0
5607
+	for iNdEx < l {
5608
+		var wire uint64
5609
+		for shift := uint(0); ; shift += 7 {
5610
+			if shift >= 64 {
5611
+				return 0, ErrIntOverflowMetrics
5612
+			}
5613
+			if iNdEx >= l {
5614
+				return 0, io.ErrUnexpectedEOF
5615
+			}
5616
+			b := dAtA[iNdEx]
5617
+			iNdEx++
5618
+			wire |= (uint64(b) & 0x7F) << shift
5619
+			if b < 0x80 {
5620
+				break
5621
+			}
5622
+		}
5623
+		wireType := int(wire & 0x7)
5624
+		switch wireType {
5625
+		case 0:
5626
+			for shift := uint(0); ; shift += 7 {
5627
+				if shift >= 64 {
5628
+					return 0, ErrIntOverflowMetrics
5629
+				}
5630
+				if iNdEx >= l {
5631
+					return 0, io.ErrUnexpectedEOF
5632
+				}
5633
+				iNdEx++
5634
+				if dAtA[iNdEx-1] < 0x80 {
5635
+					break
5636
+				}
5637
+			}
5638
+			return iNdEx, nil
5639
+		case 1:
5640
+			iNdEx += 8
5641
+			return iNdEx, nil
5642
+		case 2:
5643
+			var length int
5644
+			for shift := uint(0); ; shift += 7 {
5645
+				if shift >= 64 {
5646
+					return 0, ErrIntOverflowMetrics
5647
+				}
5648
+				if iNdEx >= l {
5649
+					return 0, io.ErrUnexpectedEOF
5650
+				}
5651
+				b := dAtA[iNdEx]
5652
+				iNdEx++
5653
+				length |= (int(b) & 0x7F) << shift
5654
+				if b < 0x80 {
5655
+					break
5656
+				}
5657
+			}
5658
+			if length < 0 {
5659
+				return 0, ErrInvalidLengthMetrics
5660
+			}
5661
+			iNdEx += length
5662
+			if iNdEx < 0 {
5663
+				return 0, ErrInvalidLengthMetrics
5664
+			}
5665
+			return iNdEx, nil
5666
+		case 3:
5667
+			for {
5668
+				var innerWire uint64
5669
+				var start int = iNdEx
5670
+				for shift := uint(0); ; shift += 7 {
5671
+					if shift >= 64 {
5672
+						return 0, ErrIntOverflowMetrics
5673
+					}
5674
+					if iNdEx >= l {
5675
+						return 0, io.ErrUnexpectedEOF
5676
+					}
5677
+					b := dAtA[iNdEx]
5678
+					iNdEx++
5679
+					innerWire |= (uint64(b) & 0x7F) << shift
5680
+					if b < 0x80 {
5681
+						break
5682
+					}
5683
+				}
5684
+				innerWireType := int(innerWire & 0x7)
5685
+				if innerWireType == 4 {
5686
+					break
5687
+				}
5688
+				next, err := skipMetrics(dAtA[start:])
5689
+				if err != nil {
5690
+					return 0, err
5691
+				}
5692
+				iNdEx = start + next
5693
+				if iNdEx < 0 {
5694
+					return 0, ErrInvalidLengthMetrics
5695
+				}
5696
+			}
5697
+			return iNdEx, nil
5698
+		case 4:
5699
+			return iNdEx, nil
5700
+		case 5:
5701
+			iNdEx += 4
5702
+			return iNdEx, nil
5703
+		default:
5704
+			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
5705
+		}
5706
+	}
5707
+	panic("unreachable")
5708
+}
5709
+
5710
+var (
5711
+	ErrInvalidLengthMetrics = fmt.Errorf("proto: negative length found during unmarshaling")
5712
+	ErrIntOverflowMetrics   = fmt.Errorf("proto: integer overflow")
5713
+)
0 5714
new file mode 100644
... ...
@@ -0,0 +1,151 @@
0
+syntax = "proto3";
1
+
2
+package io.containerd.cgroups.v1;
3
+
4
+import "gogoproto/gogo.proto";
5
+
6
+message Metrics {
7
+	repeated HugetlbStat hugetlb = 1;
8
+	PidsStat pids = 2;
9
+	CPUStat cpu = 3 [(gogoproto.customname) = "CPU"];
10
+	MemoryStat memory = 4;
11
+	BlkIOStat blkio = 5;
12
+	RdmaStat rdma = 6;
13
+	repeated NetworkStat network = 7;
14
+	CgroupStats cgroup_stats = 8;
15
+}
16
+
17
+message HugetlbStat {
18
+	uint64 usage = 1;
19
+	uint64 max = 2;
20
+	uint64 failcnt = 3;
21
+	string pagesize = 4;
22
+}
23
+
24
+message PidsStat {
25
+	uint64 current = 1;
26
+	uint64 limit = 2;
27
+}
28
+
29
+message CPUStat {
30
+	CPUUsage usage = 1;
31
+	Throttle throttling = 2;
32
+}
33
+
34
+message CPUUsage {
35
+	// values in nanoseconds
36
+	uint64 total = 1;
37
+	uint64 kernel = 2;
38
+	uint64 user = 3;
39
+	repeated uint64 per_cpu = 4 [(gogoproto.customname) = "PerCPU"];
40
+
41
+}
42
+
43
+message Throttle {
44
+	uint64 periods = 1;
45
+	uint64 throttled_periods = 2;
46
+	uint64 throttled_time = 3;
47
+}
48
+
49
+message MemoryStat {
50
+	uint64 cache = 1;
51
+	uint64 rss = 2 [(gogoproto.customname) = "RSS"];
52
+	uint64 rss_huge = 3 [(gogoproto.customname) = "RSSHuge"];
53
+	uint64 mapped_file = 4;
54
+	uint64 dirty = 5;
55
+	uint64 writeback = 6;
56
+	uint64 pg_pg_in = 7;
57
+	uint64 pg_pg_out = 8;
58
+	uint64 pg_fault = 9;
59
+	uint64 pg_maj_fault = 10;
60
+	uint64 inactive_anon = 11;
61
+	uint64 active_anon = 12;
62
+	uint64 inactive_file = 13;
63
+	uint64 active_file = 14;
64
+	uint64 unevictable = 15;
65
+	uint64 hierarchical_memory_limit = 16;
66
+	uint64 hierarchical_swap_limit = 17;
67
+	uint64 total_cache = 18;
68
+	uint64 total_rss = 19 [(gogoproto.customname) = "TotalRSS"];
69
+	uint64 total_rss_huge = 20 [(gogoproto.customname) = "TotalRSSHuge"];
70
+	uint64 total_mapped_file = 21;
71
+	uint64 total_dirty = 22;
72
+	uint64 total_writeback = 23;
73
+	uint64 total_pg_pg_in = 24;
74
+	uint64 total_pg_pg_out = 25;
75
+	uint64 total_pg_fault = 26;
76
+	uint64 total_pg_maj_fault = 27;
77
+	uint64 total_inactive_anon = 28;
78
+	uint64 total_active_anon = 29;
79
+	uint64 total_inactive_file = 30;
80
+	uint64 total_active_file = 31;
81
+	uint64 total_unevictable = 32;
82
+	MemoryEntry usage = 33;
83
+	MemoryEntry swap = 34;
84
+	MemoryEntry kernel = 35;
85
+	MemoryEntry kernel_tcp = 36 [(gogoproto.customname) = "KernelTCP"];
86
+
87
+}
88
+
89
+message MemoryEntry {
90
+	uint64 limit = 1;
91
+	uint64 usage = 2;
92
+	uint64 max = 3;
93
+	uint64 failcnt = 4;
94
+}
95
+
96
+message BlkIOStat {
97
+	repeated BlkIOEntry io_service_bytes_recursive = 1;
98
+	repeated BlkIOEntry io_serviced_recursive = 2;
99
+	repeated BlkIOEntry io_queued_recursive = 3;
100
+	repeated BlkIOEntry io_service_time_recursive = 4;
101
+	repeated BlkIOEntry io_wait_time_recursive = 5;
102
+	repeated BlkIOEntry io_merged_recursive = 6;
103
+	repeated BlkIOEntry io_time_recursive = 7;
104
+	repeated BlkIOEntry sectors_recursive = 8;
105
+}
106
+
107
+message BlkIOEntry {
108
+	string op = 1;
109
+	string device = 2;
110
+	uint64 major = 3;
111
+	uint64 minor = 4;
112
+	uint64 value = 5;
113
+}
114
+
115
+message RdmaStat {
116
+	repeated RdmaEntry current = 1;
117
+	repeated RdmaEntry limit = 2;
118
+}
119
+
120
+message RdmaEntry {
121
+	string device = 1;
122
+	uint32 hca_handles = 2;
123
+	uint32 hca_objects = 3;
124
+}
125
+
126
+message NetworkStat {
127
+	string name = 1;
128
+	uint64 rx_bytes = 2;
129
+	uint64 rx_packets = 3;
130
+	uint64 rx_errors  = 4;
131
+	uint64 rx_dropped = 5;
132
+	uint64 tx_bytes = 6;
133
+	uint64 tx_packets = 7;
134
+	uint64 tx_errors = 8;
135
+	uint64 tx_dropped = 9;
136
+}
137
+
138
+// CgroupStats exports per-cgroup statistics.
139
+message CgroupStats {
140
+	// number of tasks sleeping
141
+	uint64 nr_sleeping = 1;
142
+	// number of tasks running
143
+	uint64 nr_running = 2;
144
+	// number of tasks in stopped state
145
+	uint64 nr_stopped = 3;
146
+	// number of tasks in uninterruptible state
147
+	uint64 nr_uninterruptible = 4;
148
+	// number of tasks waiting on IO
149
+	uint64 nr_io_wait = 5;
150
+}
... ...
@@ -19,6 +19,7 @@ package cgroups
19 19
 import (
20 20
 	"fmt"
21 21
 
22
+	v1 "github.com/containerd/cgroups/stats/v1"
22 23
 	specs "github.com/opencontainers/runtime-spec/specs-go"
23 24
 )
24 25
 
... ...
@@ -85,7 +86,7 @@ type deleter interface {
85 85
 
86 86
 type stater interface {
87 87
 	Subsystem
88
-	Stat(path string, stats *Metrics) error
88
+	Stat(path string, stats *v1.Metrics) error
89 89
 }
90 90
 
91 91
 type updater interface {