Skip to content

Instantly share code, notes, and snippets.

@fritshoogland-yugabyte
Last active April 13, 2021 13:23
Show Gist options
  • Save fritshoogland-yugabyte/fb967927f7355da0827b20e8440db7ca to your computer and use it in GitHub Desktop.
Save fritshoogland-yugabyte/fb967927f7355da0827b20e8440db7ca to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import urllib.request as request
import json, time, sys, os, re
from timeit import default_timer as timer
url_to_read = [ { 'url': "http://localhost:13000/statements" } ]
current_statements_calls={}
current_statements_total_time={}
current_statements_min_time={}
current_statements_max_time={}
current_statements_mean_time={}
current_statements_stddev_time={}
current_statements_rows={}
current_time=timer()
first_time=True
while True:
previous_statements_calls=current_statements_calls
previous_statements_total_time=current_statements_total_time
previous_statements_min_time=current_statements_min_time
previous_statements_max_time=current_statements_max_time
previous_statements_mean_time=current_statements_mean_time
previous_statements_stddev_time=current_statements_stddev_time
previous_statements_rows=current_statements_rows
previous_time=current_time
current_statements_calls={}
current_statements_total_time={}
current_statements_min_time={}
current_statements_max_time={}
current_statements_mean_time={}
current_statements_stddev_time={}
current_statements_rows={}
for current_url in url_to_read:
try:
with request.urlopen(current_url['url']) as response:
http_response = response.read()
parsed_json = json.loads(http_response)
current_time = timer()
except:
print("server: %s (%s) not found." % (current_url['server_type'], current_url['url']))
continue
for statement in parsed_json['statements']:
current_statements_calls[ statement['query'] ] = statement['calls']
current_statements_total_time[ statement['query'] ] = statement['total_time']
current_statements_min_time[ statement['query'] ] = statement['min_time']
current_statements_max_time[ statement['query'] ] = statement['max_time']
current_statements_mean_time[ statement['query'] ] = statement['mean_time']
current_statements_stddev_time[ statement['query'] ] = statement['stddev_time']
current_statements_rows[ statement['query'] ] = statement['rows']
change_statements_calls={}
change_statements_total_time={}
change_statements_min_time={}
change_statements_max_time={}
change_statements_mean_time={}
change_statements_stddev_time={}
change_statements_rows={}
change_time=current_time-previous_time
for query in current_statements_calls:
if query in previous_statements_calls:
change_statements_calls[query] = current_statements_calls[query] - previous_statements_calls[query]
change_statements_total_time[query] = current_statements_total_time[query] - previous_statements_total_time[query]
change_statements_rows[query] = current_statements_rows[query] - previous_statements_rows[query]
else:
change_statements_calls[query] = current_statements_calls[query]
change_statements_total_time[query] = current_statements_total_time[query]
change_statements_rows[query] = current_statements_rows[query]
change_statements_min_time[query] = current_statements_min_time[query]
change_statements_max_time[query] = current_statements_max_time[query]
change_statements_mean_time[query] = current_statements_mean_time[query]
change_statements_stddev_time[query] = current_statements_stddev_time[query]
tot_calls=0
tot_total_time=0
tot_rows=0
if first_time:
change_time=1
first_time=False
print("---time in snapshost: %10.2f" % (change_time))
print("%-80s %12s %12s %12s %12s %12s %12s %12s %12s" % ("statemement", "calls", "calls/s", "tot_time", "tot_time/s", "min_time", "max_time", "rows", "rows/s"))
for query in change_statements_calls:
if change_statements_total_time[query] > 0:
print("%-80s %12.2f %12.2f %12.2f %12.2f %12.2f %12.2f %12d %12.2f" % (query[:80].replace('\n',''), change_statements_calls[query], change_statements_calls[query]/change_time, change_statements_total_time[query]/1000, change_statements_total_time[query]/1000/change_time, change_statements_min_time[query]/1000, change_statements_max_time[query]/1000, change_statements_rows[query], change_statements_rows[query]/change_time))
tot_calls+=change_statements_calls[query]
tot_total_time+=change_statements_total_time[query]
tot_rows+=change_statements_rows[query]
print("%-80s %12.2f %12.2f %12.2f %12.2f %12s %12s %12d %12.2f" % ("total", tot_calls, tot_calls/change_time, tot_total_time/1000, tot_total_time/1000/change_time, "", "", tot_rows, tot_rows/change_time))
try:
input("Press enter...")
except:
print('Cancelled.')
exit(0)
os.system('clear')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment