예제 #1
0
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)
예제 #2
0
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)')
예제 #3
0
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)')
예제 #4
0
                    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)
예제 #5
0
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)