@@ -107,92 +107,95 @@ type perNodeMetrics struct {
107107}
108108
109109// this historically from hawk-apiserver and parse some generic metrics
110+ // it clusterStaterieve and parse cluster data and counters
110111func parseGenericMetrics (status * crmMon ) * clusterMetrics {
111- ret := & clusterMetrics {}
112+ clusterState := & clusterMetrics {}
112113
113- ret .Node .Configured = status .Summary .Nodes .Number
114- ret .Resource .Configured = status .Summary .Resources .Number
115- ret .Resource .Disabled = status .Summary .Resources .Disabled
116- ret .PerNode = make (map [string ]perNodeMetrics )
114+ clusterState .Node .Configured = status .Summary .Nodes .Number
115+ clusterState .Resource .Configured = status .Summary .Resources .Number
116+ clusterState .Resource .Disabled = status .Summary .Resources .Disabled
117+ clusterState .PerNode = make (map [string ]perNodeMetrics )
117118
118119 rscIds := make (map [string ]* resource )
119120
121+ // Node informations
120122 for _ , nod := range status .Nodes .Node {
121123 perNode := perNodeMetrics {ResourcesRunning : nod .ResourcesRunning }
122- ret .PerNode [nod .Name ] = perNode
124+ clusterState .PerNode [nod .Name ] = perNode
123125
124126 if nod .Online {
125- ret .Node .Online ++
127+ clusterState .Node .Online ++
126128 }
127129 if nod .Standby {
128- ret .Node .Standby ++
130+ clusterState .Node .Standby ++
129131 }
130132 if nod .StandbyOnFail {
131- ret .Node .StandbyOnFail ++
133+ clusterState .Node .StandbyOnFail ++
132134 }
133135 if nod .Maintenance {
134- ret .Node .Maintenance ++
136+ clusterState .Node .Maintenance ++
135137 }
136138 if nod .Pending {
137- ret .Node .Pending ++
139+ clusterState .Node .Pending ++
138140 }
139141 if nod .Unclean {
140- ret .Node .Unclean ++
142+ clusterState .Node .Unclean ++
141143 }
142144 if nod .Shutdown {
143- ret .Node .Shutdown ++
145+ clusterState .Node .Shutdown ++
144146 }
145147 if nod .ExpectedUp {
146- ret .Node .ExpectedUp ++
148+ clusterState .Node .ExpectedUp ++
147149 }
148150 if nod .DC {
149- ret .Node .DC ++
151+ clusterState .Node .DC ++
150152 }
151153 if nod .Type == "member" {
152- ret .Node .TypeMember ++
154+ clusterState .Node .TypeMember ++
153155 } else if nod .Type == "ping" {
154- ret .Node .TypePing ++
156+ clusterState .Node .TypePing ++
155157 } else if nod .Type == "remote" {
156- ret .Node .TypeRemote ++
158+ clusterState .Node .TypeRemote ++
157159 } else {
158- ret .Node .TypeUnknown ++
160+ clusterState .Node .TypeUnknown ++
159161 }
160162
163+ // node resources
161164 for _ , rsc := range nod .Resources {
162165 rscIds [rsc .ID ] = & rsc
163166 if rsc .Role == "Started" {
164- ret .Resource .Started ++
167+ clusterState .Resource .Started ++
165168 } else if rsc .Role == "Stopped" {
166- ret .Resource .Stopped ++
169+ clusterState .Resource .Stopped ++
167170 } else if rsc .Role == "Slave" {
168- ret .Resource .Slave ++
171+ clusterState .Resource .Slave ++
169172 } else if rsc .Role == "Master" {
170- ret .Resource .Master ++
173+ clusterState .Resource .Master ++
171174 }
172175 if rsc .Active {
173- ret .Resource .Active ++
176+ clusterState .Resource .Active ++
174177 }
175178 if rsc .Orphaned {
176- ret .Resource .Orphaned ++
179+ clusterState .Resource .Orphaned ++
177180 }
178181 if rsc .Blocked {
179- ret .Resource .Blocked ++
182+ clusterState .Resource .Blocked ++
180183 }
181184 if rsc .Managed {
182- ret .Resource .Managed ++
185+ clusterState .Resource .Managed ++
183186 }
184187 if rsc .Failed {
185- ret .Resource .Failed ++
188+ clusterState .Resource .Failed ++
186189 }
187190 if rsc .FailureIgnored {
188- ret .Resource .FailureIgnored ++
191+ clusterState .Resource .FailureIgnored ++
189192 }
190193 }
191194 }
192195
193- ret .Resource .Unique = len (rscIds )
196+ clusterState .Resource .Unique = len (rscIds )
194197
195- return ret
198+ return clusterState
196199}
197200
198201var (
@@ -313,7 +316,7 @@ func main() {
313316 fmt .Println ("[INFO]: Reading cluster configuration with crm_mon.." )
314317 monxml , err := exec .Command ("/usr/sbin/crm_mon" , "-1" , "--as-xml" , "--group-by-node" , "--inactive" ).Output ()
315318 if err != nil {
316- fmt .Println ("[ERROR]: crm_mon command was not executed correctly . Did you have crm_mon installed ?" )
319+ fmt .Println ("[ERROR]: crm_mon command execution failed . Did you have crm_mon installed ?" )
317320 panic (err )
318321 }
319322
0 commit comments