def test_03_perf(self): perf_datas = [ "/=541MB;906;956;0;1007 /home=62MB;452;477;0;503 /tmp=38MB;906;956;0;1007 /var=943MB;1813;1914;0;2015 /usr=2249MB;5441;5743;0;6046 /opt=68MB;112;118;0;125 /boot=25MB;90;95;0;100 /backup=4410MB;7256;7659;0;8063 /mnt/NAS_OPU_LIVRAISON=35603MB;36300;38317;0;40334 /products/admin=595MB;906;956;0;1007 /products/oracle/10.2.0=146MB;7256;7659;0;8063 /products/agtgrid=851MB;6349;6702;0;7055 /app/PPOPVGL=10966MB;27213;28725;0;30237", "redo_log_file_switch_interval=6s;360:;60: /data/XXXX/oracle/XXXXX/dbs/archivelog=2059MB;30686;32391;0;34096", "'C:\ Used'=55.4%;90;95; 'S:\ Used'=27.2%;90;95; 'E:\ Used'=24.6%;90;95; 'Q:\ Used'=1.1%;90;95; 'F:\ Used'=83.3%;90;95; 'F:\Journaux\ Used'=0.5%;90;95; 'F:\Data\ Used'=2.0%;90;95; 'F:\App\ Used'=1.4%;90;95; 'G:\ Used'=62.6%;90;95; 'G:\Journaux\ Used'=21.6%;90;95; 'G:\App\ Used'=7.8%;90;95; '\\?\Volume{c75733e9-4327-11e0-8596-0010184d9c22}\ Used'=35.9%;90;95; 'H:\ Used'=76.6%;90;95; 'H:\Journaux\ Used'=7.2%;90;95; '\\?\Volume{b7cdcbde-4fe5-11e0-a4e6-0010184d9c22}\ Used'=49.6%;90;95; 'H:\App\ Used'=9.9%;90;95; 'I:\ Used'=46.7%;90;95; 'I:\Journaux\ Used'=8.7%;90;95; '\\?\Volume{b7cdcbe1-4fe5-11e0-a4e6-0010184d9c22}\ Used'=99.0%;90;95; 'I:\App\ Used'=10.8%;90;95; 'J:\ Used'=75.2%;90;95; 'J:\Journaux\ Used'=7.0%;90;95; 'J:\App\ Used'=10.0%;90;95; 'J:\Data\ Used'=74.2%;90;95; 'K:\ Used'=77.3%;90;95; 'K:\Journaux\ Used'=8.2%;90;95; 'K:\Data\ Used'=84.6%;90;95; 'K:\App\ Used'=10.2%;90;95; 'G:\Data\ Used'=25.7%;90;95; 'H:\Data\ Used'=41.4%;90;95; 'I:\Data\ Used'=46.1%;90;95;", "load1=0.040;3.000;4.000;0; load5=0.070;4.000;5.000;0; load15=0.010;4.000;5.000;0;" ] print "Start test:" start = time.time() for perf_data in perf_datas: parse_perfdata(perf_data) stop = time.time() print " + Elapsed: %.5f" % (stop-start)
def test_3_Check_amqp2engines(self): record = storage.get(rk) revent = record.data if revent['component'] != event['component']: raise Exception('Invalid data ...') if revent['timestamp'] != event['timestamp']: raise Exception('Invalid data ...') if revent['state'] != event['state']: raise Exception('Invalid data ...') del event_alert['_id'] # remove cps_state if len(event_alert['perf_data_array']) >= 2: del event_alert['perf_data_array'][1] event['perf_data_array'] = parse_perfdata(event['perf_data']) try: event['rk'] = event_alert['rk'] event['event_id'] = event_alert['event_id'] except: pass del event_alert['last_state_change'] if event_alert != event: print "event_alert: %s" % event_alert print "event: %s" % event raise Exception('Invalid alert data ...')
def test_3_Check_amqp2engines(self): record = storage.get(rk) revent = record.data if revent["component"] != event["component"]: raise Exception("Invalid data ...") if revent["timestamp"] != event["timestamp"]: raise Exception("Invalid data ...") if revent["state"] != event["state"]: raise Exception("Invalid data ...") del event_alert["_id"] # remove cps_state if len(event_alert["perf_data_array"]) >= 2: del event_alert["perf_data_array"][1] event["perf_data_array"] = parse_perfdata(event["perf_data"]) try: event["rk"] = event_alert["rk"] event["event_id"] = event_alert["event_id"] except: pass del event_alert["last_state_change"] if event_alert != event: print "event_alert: %s" % event_alert print "event: %s" % event raise Exception("Invalid alert data ...")
def check_perfdata(perf_data_raw): perf_data = parse_perfdata(perf_data_raw) try: perf_data[0]['value'] perf_data[0]['metric'] except Exception, err: raise Exception('Impossible to parse perfdata:\n + err: %s\n + raw: %s\n + result: %s' % (err, perf_data_raw, perf_data))
def check_perfdata(perf_data_raw): perf_data = parse_perfdata(perf_data_raw) try: perf_data[0]['value'] perf_data[0]['metric'] except Exception, err: raise Exception( 'Impossible to parse perfdata:\n + err: %s\n + raw: %s\n + result: %s' % (err, perf_data_raw, perf_data))
def work(self, event, *args, **kargs): ## Metrology timestamp = int(event['timestamp']) ## Get perfdata perf_data = event.get('perf_data', None) perf_data_array = event.get('perf_data_array', []) ### Parse perfdata if perf_data: self.logger.debug(' + perf_data: %s', perf_data) try: perf_data_array = parse_perfdata(perf_data) except Exception, err: self.logger.error("Impossible to parse: %s ('%s')" % (perf_data, err))
def work(self, event, *args, **kargs): ## Metrology timestamp = int(event["timestamp"]) ## Get perfdata perf_data = event.get("perf_data", None) perf_data_array = event.get("perf_data_array", []) if perf_data_array == None: perf_data_array = [] ### Parse perfdata if perf_data: self.logger.debug(" + perf_data: %s", perf_data) try: perf_data_array = parse_perfdata(perf_data) except Exception, err: self.logger.error("Impossible to parse: %s ('%s')" % (perf_data, err))
def work(self, event, *args, **kargs): ## Get perfdata perf_data = event.get('perf_data', None) perf_data_array = event.get('perf_data_array', []) if perf_data_array == None: perf_data_array = [] ### Parse perfdata if perf_data: self.logger.debug(' + perf_data: %s', perf_data) try: perf_data_array = parse_perfdata(perf_data) except Exception, err: self.logger.error("Impossible to parse: %s ('%s')" % (perf_data, err))
def test_01_Perfdata(self): result = [{'warn': 5.0, 'crit': 10.0, 'metric': 'load1', 'value': 0.44, 'min': 0.0}, {'warn': 4.0, 'crit': 6.0, 'metric': 'load5', 'value': 0.19, 'min': 0.0}, {'warn': 3.0, 'crit': 4.0, 'metric': 'load15', 'value': 0.13, 'min': 0.0}] perf_data = "load1=0.440;5.000;10.000;0; load5=0.190;4.000;6.000;0; load15=0.130;3.000;4.000;0;" perf_data = parse_perfdata(perf_data) if perf_data != result: print perf_data raise Exception('[1] Error in perfdata parsing ...') result = [ {'metric': 'load1', 'value': 0.440} ] perf_data = "load1=0.440" perf_data = parse_perfdata(perf_data) if perf_data != result: print perf_data raise Exception('[2] Error in perfdata parsing ...') result = [{'min': 0.0, 'max': 100.0, 'metric': 'ok', 'value': 100.0, 'warn': 98.0, 'crit': 95.0, 'unit': '%'}, {'min': 0.0, 'max': 100.0, 'metric': 'warn', 'value': 0.0, 'warn': 0.0, 'crit': 0.0, 'unit': '%'}, {'min': 0.0, 'max': 100.0, 'metric': 'crit', 'value': 0.0, 'warn': 0.0, 'crit': 0.0, 'unit': '%'}] perf_data = "'ok'=100.0%;98;95;0;100 'warn'=0%;0;0;0;100 'crit'=0%;0;0;0;100" perf_data = parse_perfdata(perf_data) if perf_data != result: print perf_data raise Exception('[3] Error in perfdata parsing ...') result = [{'min': 0.0, 'max': 100.0, 'metric': 'C:/ Used', 'value': 100.0, 'warn': 98.0, 'crit': 95.0, 'unit': '%'}, {'min': 0.0, 'max': 100.0, 'metric': 'warn: /ing', 'value': 0.0, 'warn': 0.0, 'crit': 0.0, 'unit': '%'}, {'min': 0.0, 'max': 100.0, 'metric': 'D:\\ Used', 'value': 0.0, 'warn': 0.0, 'crit': 0.0, 'unit': '%'}] perf_data = "'C:/ Used'=100.0%;98;95;0;100; 'warn: /ing'=0%;0;0;0;100; 'D:\ Used'=0%;0;0;0;100;" perf_data = parse_perfdata(perf_data) if perf_data != result: print perf_data raise Exception('[4] Error in perfdata parsing ...') perf_data = "/=541MB;906;956;0;1007 /home=62MB;452;477;0;503 /tmp=38MB;906;956;0;1007 /var=943MB;1813;1914;0;2015 /usr=2249MB;5441;5743;0;6046 /opt=68MB;112;118;0;125 /boot=25MB;90;95;0;100 /backup=4410MB;7256;7659;0;8063 /mnt/NAS_OPU_LIVRAISON=35603MB;36300;38317;0;40334 /products/admin=595MB;906;956;0;1007 /products/oracle/10.2.0=146MB;7256;7659;0;8063 /products/agtgrid=851MB;6349;6702;0;7055 /app/PPOPVGL=10966MB;27213;28725;0;30237" perf_data = parse_perfdata(perf_data) perf_data = "/=217MB;460;486;0;512 /usr=2757MB;3052;3222;0;3392 /var=397MB;921;972;0;1024 /tmp=437MB;2275;2401;0;2528 /home=243MB;460;486;0;512 /admin=0MB;115;121;0;128 /opt=489MB;691;729;0;768 /var/adm/ras/livedump=4MB;460;486;0;512 /products=2007MB;9216;9728;0;10240 /products/logs=0MB;921;972;0;1024 /products/admin=216MB;921;972;0;1024 /data/PPOPBGL/oracle/PPOPBGL1/nfsbck=32226MB;46771;49369;0;51968 /data/PPOPBGL/oracle/PPOPBGL2/nfsbck=32226MB;46771;49369;0;51968 /app/P1TECGL/P1OPBGLDB01=409MB;921;972;0;1024 /app/admin=0MB;921;972;0;1024 /app/agtgrid=2433MB;2764;2918;0;3072 /data/PPOPBGL/oracle/PPOPBGL1/admin= /data/PPOPBGL/oracle/PPOPBGL1/backup=55MB;1843;1945;0;2048 /data/PPOPBGL/oracle/PPOPBGL1/dbs/archivelog=6605MB;74628;78774;0;82920 /data/PPOPBGL/oracle/PPOPBGL1/dbs/data01=9263MB;94924;100198;0;105472 /data/PPOPBGL/oracle/PPOPBGL1/dbs/flash_recovery_area=0MB;3600;3800;0;4000 /data/PPOPBGL/oracle/PPOPBGL1/dbs/index0= /data/PPOPBGL/oracle/PPOPBGL1/dbs/redolog01=" perf_data = parse_perfdata(perf_data) perf_data = "load1=0.040;3.000;4.000;0; load5=0.070;4.000;5.000;0; load15=0.010;4.000;5.000;0;" perf_data = parse_perfdata(perf_data) perf_data = "'C:\ %'=67%;10;5; 'C:\'=6.65G;2;1;0;20; 'E:\ %'=31%;10;5; 'E:\'=10870.0M;1567.45;783.72;0;15674.52; 'J:\ %'=88%;10;5; 'J:\'=2.57G;2;1;0;20.00; 'T:\ %'=100%;10;5; 'T:\'=49.53M;512.3;256.19;0;5123.90;" perf_data = parse_perfdata(perf_data) perf_data = "'C:\ Used'=55.4%;90;95; 'S:\ Used'=27.2%;90;95; 'E:\ Used'=24.6%;90;95; 'Q:\ Used'=1.1%;90;95; 'F:\ Used'=83.3%;90;95; 'F:\Journaux\ Used'=0.5%;90;95; 'F:\Data\ Used'=2.0%;90;95; 'F:\App\ Used'=1.4%;90;95; 'G:\ Used'=62.6%;90;95; 'G:\Journaux\ Used'=21.6%;90;95; 'G:\App\ Used'=7.8%;90;95; '\\?\Volume{c75733e9-4327-11e0-8596-0010184d9c22}\ Used'=35.9%;90;95; 'H:\ Used'=76.6%;90;95; 'H:\Journaux\ Used'=7.2%;90;95; '\\?\Volume{b7cdcbde-4fe5-11e0-a4e6-0010184d9c22}\ Used'=49.6%;90;95; 'H:\App\ Used'=9.9%;90;95; 'I:\ Used'=46.7%;90;95; 'I:\Journaux\ Used'=8.7%;90;95; '\\?\Volume{b7cdcbe1-4fe5-11e0-a4e6-0010184d9c22}\ Used'=99.0%;90;95; 'I:\App\ Used'=10.8%;90;95; 'J:\ Used'=75.2%;90;95; 'J:\Journaux\ Used'=7.0%;90;95; 'J:\App\ Used'=10.0%;90;95; 'J:\Data\ Used'=74.2%;90;95; 'K:\ Used'=77.3%;90;95; 'K:\Journaux\ Used'=8.2%;90;95; 'K:\Data\ Used'=84.6%;90;95; 'K:\App\ Used'=10.2%;90;95; 'G:\Data\ Used'=25.7%;90;95; 'H:\Data\ Used'=41.4%;90;95; 'I:\Data\ Used'=46.1%;90;95;" perf_data = parse_perfdata(perf_data) perf_data = "'C_Used'=55.4%;90;95;" perf_data = parse_perfdata(perf_data) if perf_data[0]['metric'] != 'C_Used': raise Exception('[5] Error in perfdata parsing ...') perf_data = "redo_log_file_switch_interval=6s;360:;60: /data/XXXX/oracle/XXXXX/dbs/archivelog=2059MB;30686;32391;0;34096" perf_data = parse_perfdata(perf_data) if perf_data[0]['warn'] != 360 or perf_data[0]['crit'] != 60 or perf_data[1]['metric'] != '/data/XXXX/oracle/XXXXX/dbs/archivelog' or perf_data[1]['warn'] != 30686 or perf_data[1]['crit'] != 32391 : raise Exception('[6] Error in perfdata parsing ...') perf_data = "test=6s;360:120;@60:23;90;1000" perf_data = parse_perfdata(perf_data) perf_data = "test=6s;360;~:60;90;1000" perf_data = parse_perfdata(perf_data)