aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2017-07-19 14:13:35 -0400
committerKevin O'Connor <kevin@koconnor.net>2017-07-19 14:14:01 -0400
commitc4b8d3ea8bbfc00801d2b509d3436539177b0b46 (patch)
treee06e55a2bee4473c69439135fbae3589ba749d61 /scripts
parent118fd21cb815d1c27e7e5bd6b394369bdf095919 (diff)
downloadkutter-c4b8d3ea8bbfc00801d2b509d3436539177b0b46.tar.gz
kutter-c4b8d3ea8bbfc00801d2b509d3436539177b0b46.tar.xz
kutter-c4b8d3ea8bbfc00801d2b509d3436539177b0b46.zip
graphstats: Support graphing "mcu_awake" statistic
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/graphstats.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/scripts/graphstats.py b/scripts/graphstats.py
index 06abc68f..edb67624 100755
--- a/scripts/graphstats.py
+++ b/scripts/graphstats.py
@@ -9,6 +9,7 @@ import matplotlib.pyplot as plt, matplotlib.dates as mdates
MAXBANDWIDTH=25000.
MAXBUFFER=2.
+STATS_INTERVAL=5.
def parse_log(logname):
f = open(logname, 'rb')
@@ -48,7 +49,7 @@ def find_print_restarts(data):
sample_resets[st] = 1
return sample_resets
-def plot_mcu(data, maxbw, outname):
+def plot_mcu(data, maxbw, outname, graph_awake=False):
# Generate data for plot
basetime = lasttime = data[0]['#sampletime']
lastbw = float(data[0]['bytes_write']) + float(data[0]['bytes_retransmit'])
@@ -56,6 +57,7 @@ def plot_mcu(data, maxbw, outname):
times = []
bwdeltas = []
loads = []
+ awake = []
hostbuffers = []
for d in data:
st = d['#sampletime']
@@ -79,6 +81,7 @@ def plot_mcu(data, maxbw, outname):
times.append(datetime.datetime.utcfromtimestamp(st))
bwdeltas.append(100. * (bw - lastbw) / (maxbw * timedelta))
loads.append(100. * load / .001)
+ awake.append(100. * float(d['mcu_awake']) / STATS_INTERVAL)
lasttime = st
lastbw = bw
@@ -87,6 +90,8 @@ def plot_mcu(data, maxbw, outname):
ax1.set_title("MCU bandwidth and load utilization")
ax1.set_xlabel('Time')
ax1.set_ylabel('Usage (%)')
+ if graph_awake:
+ ax1.plot_date(times, awake, 'b', label='Awake time')
ax1.plot_date(times, bwdeltas, 'g', label='Bandwidth')
ax1.plot_date(times, loads, 'r', label='MCU load')
ax1.plot_date(times, hostbuffers, 'c', label='Host buffer')
@@ -99,6 +104,8 @@ def plot_mcu(data, maxbw, outname):
def main():
usage = "%prog [options] <logfile> <outname>"
opts = optparse.OptionParser(usage)
+ opts.add_option("-a", "--awake", action="store_true"
+ , help="graph mcu awake time")
options, args = opts.parse_args()
if len(args) != 2:
opts.error("Incorrect number of arguments")
@@ -106,7 +113,7 @@ def main():
data = parse_log(logname)
if not data:
return
- plot_mcu(data, MAXBANDWIDTH, outname)
+ plot_mcu(data, MAXBANDWIDTH, outname, graph_awake=options.awake)
if __name__ == '__main__':
main()