forked from e-XpertSolutions/f5-rest-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cpu_stats.go
161 lines (149 loc) · 4.7 KB
/
cpu_stats.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
// Copyright e-Xpert Solutions SA. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package sys
import "github.com/e-XpertSolutions/f5-rest-client/f5"
type CPUList struct {
Entries map[string]CPUEntries `json:"entries,omitempty"`
Kind string `json:"kind,omitempty" pretty:",expanded"`
SelfLink string `json:"selfLink,omitempty" pretty:",expanded"`
}
type CPUEntries struct {
NestedStats CPUStatsList `json:"nestedStats,omitempty"`
}
type CPUStatsList struct {
Entries map[string]CPUStatsEntries `json:"entries,omitempty"`
Kind string `json:"kind,omitempty" pretty:",expanded"`
SelfLink string `json:"selfLink,omitempty" pretty:",expanded"`
}
type CPUStatsEntries struct {
NestedStats CPUCoreStatsList `json:"nestedStats,omitempty"`
Description string `json:"description,omitempty"`
}
type CPUCoreStatsList struct {
Entries map[string]CPUCoreStatsEntries `json:"entries,omitempty"`
Kind string `json:"kind,omitempty" pretty:",expanded"`
SelfLink string `json:"selfLink,omitempty" pretty:",expanded"`
}
type CPUCoreStatsEntries struct {
NestedStats CPUCoreStats `json:"nestedStats,omitempty"`
}
type CPUCoreStats struct {
Entries struct {
CpuId struct {
Value int `json:"value"`
} `json:"cpuId,omitempty"`
FiveMinAvgIdle struct {
Value int `json:"value"`
} `json:"fiveMinAvgIdle,omitempty"`
FiveMinAvgIowait struct {
Value int `json:"value"`
} `json:"fiveMinAvgIowait,omitempty"`
FiveMinAvgIrq struct {
Value int `json:"value"`
} `json:"fiveMinAvgIrq,omitempty"`
FiveMinAvgNiced struct {
Value int `json:"value"`
} `json:"fiveMinAvgNiced,omitempty"`
FiveMinAvgSoftirq struct {
Value int `json:"value"`
} `json:"fiveMinAvgSoftirq,omitempty"`
FiveMinAvgStolen struct {
Value int `json:"value"`
} `json:"fiveMinAvgStolen,omitempty"`
FiveMinAvgSystem struct {
Value int `json:"value"`
} `json:"fiveMinAvgSystem,omitempty"`
FiveMinAvgUser struct {
Value int `json:"value"`
} `json:"fiveMinAvgUser,omitempty"`
FiveSecAvgIdle struct {
Value int `json:"value"`
} `json:"fiveSecAvgIdle,omitempty"`
FiveSecAvgIowait struct {
Value int `json:"value"`
} `json:"fiveSecAvgIowait,omitempty"`
FiveSecAvgIrq struct {
Value int `json:"value"`
} `json:"fiveSecAvgIrq,omitempty"`
FiveSecAvgNiced struct {
Value int `json:"value"`
} `json:"fiveSecAvgNiced,omitempty"`
FiveSecAvgSoftirq struct {
Value int `json:"value"`
} `json:"fiveSecAvgSoftirq,omitempty"`
FiveSecAvgStolen struct {
Value int `json:"value"`
} `json:"fiveSecAvgStolen,omitempty"`
FiveSecAvgSystem struct {
Value int `json:"value"`
} `json:"fiveSecAvgSystem,omitempty"`
FiveSecAvgUser struct {
Value int `json:"value"`
} `json:"fiveSecAvgUser,omitempty"`
Idle struct {
Value int `json:"value"`
} `json:"idle,omitempty"`
Iowait struct {
Value int `json:"value"`
} `json:"iowait,omitempty"`
Irq struct {
Value int `json:"value"`
} `json:"irq,omitempty"`
Niced struct {
Value int `json:"value"`
} `json:"niced,omitempty"`
OneMinAvgIdle struct {
Value int `json:"value"`
} `json:"oneMinAvgIdle,omitempty"`
OneMinAvgIowait struct {
Value int `json:"value"`
} `json:"oneMinAvgIowait,omitempty"`
OneMinAvgIrq struct {
Value int `json:"value"`
} `json:"oneMinAvgIrq,omitempty"`
OneMinAvgNiced struct {
Value int `json:"value"`
} `json:"oneMinAvgNiced,omitempty"`
OneMinAvgSoftirq struct {
Value int `json:"value"`
} `json:"oneMinAvgSoftirq,omitempty"`
OneMinAvgStolen struct {
Value int `json:"value"`
} `json:"oneMinAvgStolen,omitempty"`
OneMinAvgSystem struct {
Value int `json:"value"`
} `json:"oneMinAvgSystem,omitempty"`
OneMinAvgUser struct {
Value int `json:"value"`
} `json:"oneMinAvgUser,omitempty"`
Softirq struct {
Value int `json:"value"`
} `json:"softirq,omitempty"`
Stolen struct {
Value int `json:"value"`
} `json:"stolen,omitempty"`
System struct {
Value int `json:"value"`
} `json:"system,omitempty"`
UsageRatio struct {
Value int `json:"value"`
} `json:"usageRatio,omitempty"`
User struct {
Value int `json:"value"`
} `json:"user,omitempty"`
} `json:"entries,omitempty"`
}
// CPUStatsEndpoint represents the REST resource for managing CPUStats.
const CPUStatsEndpoint = "/cpu"
// CPUStatsResource provides an API to manage CPUStats entries.
type CPUStatsResource struct {
c *f5.Client
}
func (r *CPUStatsResource) All() (*CPUList, error) {
var list CPUList
if err := r.c.ReadQuery(BasePath+CPUStatsEndpoint, &list); err != nil {
return nil, err
}
return &list, nil
}