77 "log"
88 "net/http"
99 "os/exec"
10- "sort"
1110 "strings"
1211 "time"
1312
@@ -100,11 +99,6 @@ type clusterMetrics struct {
10099 Failed int
101100 FailureIgnored int
102101 }
103- PerNode map [string ]perNodeMetrics
104- }
105-
106- type perNodeMetrics struct {
107- ResourcesRunning int
108102}
109103
110104// this historically from hawk-apiserver and parse some generic metrics
@@ -113,18 +107,13 @@ func parseGenericMetrics(status *crmMon) *clusterMetrics {
113107
114108 // clusterState save all the xml data . This is the metrics we will convert later to gauge etc.
115109 clusterState := & clusterMetrics {}
116-
117110 clusterState .Node .Configured = status .Summary .Nodes .Number
118111 clusterState .Resource .Configured = status .Summary .Resources .Number
119112 clusterState .Resource .Disabled = status .Summary .Resources .Disabled
120- clusterState .PerNode = make (map [string ]perNodeMetrics )
121-
122113 rscIds := make (map [string ]* resource )
123114
124115 // Node informations
125116 for _ , nod := range status .Nodes .Node {
126- perNode := perNodeMetrics {ResourcesRunning : nod .ResourcesRunning }
127- clusterState .PerNode [nod .Name ] = perNode
128117
129118 if nod .Online {
130119 clusterState .Node .Online ++
@@ -162,7 +151,6 @@ func parseGenericMetrics(status *crmMon) *clusterMetrics {
162151 } else {
163152 clusterState .Node .TypeUnknown ++
164153 }
165-
166154 // node resources
167155 for _ , rsc := range nod .Resources {
168156 rscIds [rsc .ID ] = & rsc
@@ -196,9 +184,7 @@ func parseGenericMetrics(status *crmMon) *clusterMetrics {
196184 }
197185
198186 }
199-
200187 clusterState .Resource .Unique = len (rscIds )
201-
202188 return clusterState
203189}
204190
@@ -210,11 +196,6 @@ var (
210196 Help : "cluster nodes metrics" ,
211197 }, []string {"type" })
212198
213- clusterResourcesRunning = prometheus .NewGaugeVec (
214- prometheus.GaugeOpts {
215- Name : "cluster_resources_running" ,
216- Help : "number of cluster resources running" ,
217- }, []string {"node" })
218199 // TODO: rename this to nodeResource
219200 clusterResources = prometheus .NewGaugeVec (
220201 prometheus.GaugeOpts {
@@ -232,8 +213,8 @@ var (
232213func initMetrics () {
233214
234215 prometheus .MustRegister (clusterNodes )
235- // resources TODO: this 3 metrics can be refactored
236- prometheus . MustRegister ( clusterResourcesRunning )
216+ // resources TODO: this 2 metrics can be refactored
217+ // TODO rename clusterResources to nodeResources
237218 prometheus .MustRegister (clusterResources )
238219 prometheus .MustRegister (clusterResourcesStatus )
239220}
@@ -297,7 +278,7 @@ func main() {
297278 clusterResourcesStatus .WithLabelValues ("slave" ).Set (float64 (metrics .Resource .Slave ))
298279 clusterResourcesStatus .WithLabelValues ("master" ).Set (float64 (metrics .Resource .Master ))
299280
300- // metrics with labels
281+ // nodes metrics
301282 clusterNodes .WithLabelValues ("member" ).Set (float64 (metrics .Node .TypeMember ))
302283 clusterNodes .WithLabelValues ("ping" ).Set (float64 (metrics .Node .TypePing ))
303284 clusterNodes .WithLabelValues ("remote" ).Set (float64 (metrics .Node .TypeRemote ))
@@ -320,19 +301,6 @@ func main() {
320301 clusterResources .WithLabelValues (strings .ToLower (nod .Name ), strings .ToLower (rsc .ID ), strings .ToLower (rsc .Role )).Inc ()
321302 }
322303 }
323- // TODO: this is historically, we might don't need to do like this. investigate on this later
324- // this can be improved in a more simple way or even removed
325- keys := make ([]string , len (metrics .PerNode ))
326- i := 0
327- for k := range metrics .PerNode {
328- keys [i ] = k
329- i ++
330- }
331- sort .Strings (keys )
332- for _ , k := range keys {
333- node := metrics .PerNode [k ]
334- clusterResourcesRunning .WithLabelValues (k ).Set (float64 (node .ResourcesRunning ))
335- }
336304
337305 time .Sleep (time .Duration (int64 (* timeoutSeconds )) * time .Second )
338306 }
0 commit comments