From bda86cbf712d6be6fa8adf50859d712a81600c13 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Mon, 23 Oct 2017 04:08:14 +0100 Subject: [PATCH] Add stats --- ajaxmonit.py | 72 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 24 deletions(-) diff --git a/ajaxmonit.py b/ajaxmonit.py index 71422a7..99ee553 100755 --- a/ajaxmonit.py +++ b/ajaxmonit.py @@ -64,7 +64,7 @@ def page_cable_settings(cookies): if __name__ == "__main__": FIELDS = { - 'download': ['snr_val_dn', 'power_val_dn', 'freq_val_dn'], + 'download': ['snr_val_dn', 'power_val_dn', 'freq_val_dn', 'rx_id_val_dn'], 'upload': ['power_val_up', 'freq_val_up', 'cannel_id_val_up'], } @@ -76,16 +76,19 @@ if __name__ == "__main__": COOKIES = login() while True: + START1 = datetime.now() print(datetime.now(), "Request page") REQ = page_cable_settings(COOKIES) print(datetime.now(), "Got page") + + START2 = datetime.now() + print(datetime.now(), "Started parsing") UTS = (datetime.strptime(REQ.headers['Date'], '%a, %d %b %Y %H:%M:%S %Z') + timedelta(hours=1) ).strftime('%Y-%m-%d %H:%M:%S') - CNX = dbconnect() - CURSOR = CNX.cursor() - print(datetime.now(), "Connected to DB") + DOWN = [] + UP = [] for CHAN in range(0, 8): CHANNEL = {} @@ -94,15 +97,7 @@ if __name__ == "__main__": MATCHES = re.search(REGEX % (FIELD, str(CHAN)), REQ.text) if MATCHES: CHANNEL[FIELD] = MATCHES.group(3).replace(' dBmV', '').replace(' dB', '').replace(' MHz', '') - try: - CURSOR.execute(INSERT, (UTS, 0, CHAN, - CHANNEL['freq_val_dn'], - CHANNEL['power_val_dn'], - CHANNEL['snr_val_dn'])) - print(datetime.now(), - "Inserting downstream channel %d to DB" % (CHAN)) - except (mysql.connector.IntegrityError, KeyError) as err: - pass + DOWN.append(CHANNEL) for CHAN in range(0, 2): CHANNEL = {} @@ -110,19 +105,48 @@ if __name__ == "__main__": MATCHES = re.search(REGEX % (FIELD, str(CHAN)), REQ.text) if MATCHES: CHANNEL[FIELD] = MATCHES.group(3).replace(' dBmV', '').replace(' MHz', '') - try: - CURSOR.execute(INSERT, (UTS, 1, - CHANNEL['cannel_id_val_up'], - CHANNEL['freq_val_up'], - CHANNEL['power_val_up'], None)) - print(datetime.now(), - "Inserting upstream channel %d to DB" % (CHAN)) - except (mysql.connector.IntegrityError, KeyError) as err: - pass + UP.append(CHANNEL) + + print(datetime.now(), "Ended parsing") + + START3 = datetime.now() + CNX = dbconnect() + CURSOR = CNX.cursor() + print(datetime.now(), "Connected to DB") + + for ITEM in DOWN: + try: + CURSOR.execute(INSERT, (UTS, 0, + ITEM['rx_id_val_dn'], + ITEM['freq_val_dn'], + ITEM['power_val_dn'], + ITEM['snr_val_dn'])) + except (mysql.connector.IntegrityError) as err: + pass + + for ITEM in UP: + try: + CURSOR.execute(INSERT, (UTS, 1, + ITEM['cannel_id_val_up'], + ITEM['freq_val_up'], + ITEM['power_val_up'], None)) + except (mysql.connector.IntegrityError, KeyError) as err: + pass - CURSOR.close() CNX.commit() + print(datetime.now(), "Records inserted") + CURSOR.close() CNX.close() print(datetime.now(), "DB connection closed") - print(datetime.now(), "Sleeping") + END = datetime.now() + + DELTA1 = START2 - START1 + DELTA2 = START3 - START2 + DELTA3 = END - START3 + print(datetime.now(), "Took %d milliseconds (%d request, %d parsing, %d db)" % + ((DELTA3 + DELTA2 + DELTA1).total_seconds() * 100, + DELTA1.total_seconds() * 100, + DELTA2.total_seconds() * 100, + DELTA3.total_seconds() * 100)) + print(datetime.now(), "Sleeping\n") time.sleep(30)