diff --git a/listServers.py b/listServers.py index cabc4e0..001851e 100644 --- a/listServers.py +++ b/listServers.py @@ -21,7 +21,7 @@ def listServers(serverName): serverNameFields = len(serverNamePos) # How many fields do we have to process servers = [] # Init, the results of this. - for srv in range(2, len(serverName)): # Loop through servers. | Adjust for the first two being headers. + for srv in range(2, 17): # Loop through servers. | Adjust for the first two being headers. 17 is the lsat row. There could be other context below there. # Fields: [BayNumber "Server Name", "Serial Number", "Status", "Power", "UID Partner"] serverNameCurrentTmp = [] # Init @@ -30,6 +30,7 @@ def listServers(serverName): serverNameCurrentTmp.append( int( serverName[srv][0:serverNamePos[fld]].strip() ) ) # Also convert to int, as we know it's a number. else: serverNameCurrentTmp.append( serverName[srv][serverNamePos[fld-1]+1:serverNamePos[fld]].strip() ) # Get ith field by character position. + if not ( serverNameCurrentTmp[1] == '[Absent]' and serverNameCurrentTmp[4] == '' ): # If name is Absent and power status isn't available, there probably isn't a server there. servers.append(serverNameCurrentTmp) # Only append if the bay is actually in use. diff --git a/prom_servers.py b/prom_servers.py index f8544b5..4384439 100644 --- a/prom_servers.py +++ b/prom_servers.py @@ -65,6 +65,8 @@ def prom_servers(PREFIX, baysInUseCount, servers): uid = 1 elif servers[n][5] == 'Off': uid = 0 + elif servers[n][5] == '*': + uid = 2 # Blade UID is blinking and a critical operation is being performed on the blade (firmware update in progress or remote console in use). else: uid = 'NaN' warn("unknown UID status for blade '" + servers[n][1] + "' in enc " + servers[n][8] + " bay " + str(servers[n][0]) + "." ) @@ -88,7 +90,7 @@ def prom_servers(PREFIX, baysInUseCount, servers): prom_disp_servers = prom_disp_servers + prom_header('Relative usage of whole enc AC the blade is consuming in watts', promRelAC, 'gauge') prom_disp_servers = prom_disp_servers + prom_header('Actual DC in watts what the blade uses directly', promBldDC, 'gauge') prom_disp_servers = prom_disp_servers + prom_header('Blade health 1 for ok 0 for nok NaN for err', promHealth, 'gauge') - prom_disp_servers = prom_disp_servers + prom_header('Blade UID blinkyboy 1 for blinky blinky 0 for no blinky blinky NaN for err', promUID, 'gauge') + prom_disp_servers = prom_disp_servers + prom_header('Blade UID blinkyboy 1 for blinky blinky 0 for no blinky blinky 2 if critical fw update or remote console in progress NaN for err', promUID, 'gauge') prom_disp_servers = prom_disp_servers + prom_header('Blade power 1 for on and everything in between 0 for off NaN for err', promPower, 'gauge') errors_prom = [PREFIX + 'errors_total{} ' + str(float(errors))] prom_disp_servers = prom_disp_servers + prom_header('Number of errors or warnings encountered during the gathering of data see logs of promServers in blade-ssh-scraper', errors_prom, 'counter')