def plot_cpu(input_file, axes): reader = csv.reader(input_file) times = [] user = [] system = [] idle = [] waiting = [] for row in reader: if len(row) == 0: continue if is_datetime(row[0]): times.append(string_to_datetime(row[0])) user.append(float(row[1])) system.append(float(row[2])) idle.append(float(row[3])) waiting.append(float(row[4])) del reader first_time = times[0] delta_times = [ (time - first_time).seconds for time in times] user_sys = [ user[i] + system[i] for i in xrange(len(user)) ] usw = [user_sys[i] + waiting[i] for i in xrange(len(user)) ] #axes.plot(delta_times, user, color='#22AA22', linewidth=2) axes.plot(delta_times, user_sys, color='#22AA22', linewidth=2) axes.plot(delta_times, usw, color='#66FF66') axes.set_ylabel('CPU Utilization (%)') axes.set_xlabel('Time (s)') axes.set_ylim(top=100)
def plot_disk(input_file, axes): reader = csv.reader(input_file) times = [] read = [] write = [] for row in reader: if len(row) == 0: continue if is_datetime(row[0]): times.append(string_to_datetime(row[0])) read.append(float(row[1])) write.append(float(row[2])) del reader first_time = times[0] delta_times = [ (time - first_time).seconds for time in times] axes.plot(delta_times, read, color='#AAAAFF', linewidth=2) axes.plot(delta_times, write, color='#000077', linewidth=2) axes.set_ylabel('Disk Activity') axes.set_xlabel('Time (s)')
def plot_net(input_file, axes): reader = csv.reader(input_file) times = [] recv = [] send = [] for row in reader: if len(row) == 0: continue if is_datetime(row[0]): times.append(string_to_datetime(row[0])) recv.append(float(row[1])) send.append(float(row[2])) del reader first_time = times[0] delta_times = [ (time - first_time).seconds for time in times] axes.plot(delta_times, recv, color='#CCCC00', linewidth=2) axes.plot(delta_times, send, color='#FF0000', linewidth=2) axes.set_ylabel('Network Activity') axes.set_xlabel('Time (s)')
required=True) parser.add_argument('--length', type=int, dest='length', action='store', required=True) parser.add_argument('--output', nargs='?', type=argparse.FileType('w'), default=sys.stdout, dest='output', action='store') args = parser.parse_args() start_time = string_to_datetime(args.start_time) end_time = start_time + datetime.timedelta(seconds=args.length) writer = csv.writer(args.output, delimiter=',', quotechar='"') reader = csv.reader(args.input_file, delimiter=',', quotechar='"') for row in reader: if len(row) == 0: continue if row[0] in ['system', 'time', 'Host:']: writer.writerow(row) elif is_datetime(row[0]): cur_date = string_to_datetime(row[0]) if cur_date >= start_time and cur_date <= end_time: writer.writerow(row)
import csv import re import sys import argparse import datetime from util import string_to_datetime, is_datetime parser = argparse.ArgumentParser() parser.add_argument('input_file', nargs='?', type=argparse.FileType('r'), default=sys.stdin, action='store') parser.add_argument('--start-time', type=str, dest='start_time', action='store', required=True) parser.add_argument('--length', type=int, dest='length', action='store', required=True) parser.add_argument('--output', nargs='?', type=argparse.FileType('w'), default=sys.stdout, dest='output', action='store') args = parser.parse_args() start_time = string_to_datetime(args.start_time) end_time = start_time + datetime.timedelta(seconds=args.length) writer = csv.writer(args.output, delimiter=',', quotechar='"') reader = csv.reader(args.input_file, delimiter=',', quotechar='"') for row in reader: if len(row) == 0: continue if row[0] in ['system', 'time', 'Host:']: writer.writerow(row) elif is_datetime(row[0]): cur_date = string_to_datetime(row[0]) if cur_date >= start_time and cur_date <= end_time: writer.writerow(row)