Skip to content

Commit

Permalink
extract more stats from worker logs (e.g., finished jobs)
Browse files Browse the repository at this point in the history
  • Loading branch information
lirazsiri committed Dec 12, 2012
1 parent bbfb1de commit ba952a4
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions cloudtask/logalyzer.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -77,14 +77,15 @@ def __init__(self, worker_id, name, result, timestamp, elapsed, output):
def __repr__(self): def __repr__(self):
return "Job%s" % `self.worker_id, self.name, self.result, self.elapsed` return "Job%s" % `self.worker_id, self.name, self.result, self.elapsed`


class Instance: class Worker:
def __init__(self, worker_id, instance_id, seconds): def __init__(self, worker_id, instance_id, seconds, jobs):
self.worker_id = worker_id self.worker_id = worker_id
self.instance_id = instance_id self.instance_id = instance_id
self.seconds = seconds self.seconds = seconds
self.jobs = jobs


def __repr__(self): def __repr__(self):
return "Instance%s" % `self.worker_id, self.instance_id, self.seconds` return "Worker%s" % `self.worker_id, self.instance_id, self.seconds, self.jobs`


@classmethod @classmethod
def get_jobs(cls, log_entries, command): def get_jobs(cls, log_entries, command):
Expand Down Expand Up @@ -133,17 +134,13 @@ def get_instance_elapsed(cls, log_entries):


def __init__(self, dpath, command): def __init__(self, dpath, command):
jobs = {} jobs = {}
instances = [] workers = []


for fname in os.listdir(dpath): for fname in os.listdir(dpath):
worker_id = int(fname) worker_id = int(fname)
fpath = join(dpath, fname) fpath = join(dpath, fname)
log_entries = self.parse_worker_log(fpath) log_entries = self.parse_worker_log(fpath)


instance_id, seconds = self.get_instance_elapsed(log_entries)
if instance_id:
instances.append(self.Instance(worker_id, instance_id, seconds))

worker_jobs = [ self.Job(worker_id, *job_args) for worker_jobs = [ self.Job(worker_id, *job_args) for
job_args in self.get_jobs(log_entries, command) ] job_args in self.get_jobs(log_entries, command) ]


Expand All @@ -156,8 +153,14 @@ def __init__(self, dpath, command):
else: else:
jobs[name] = job jobs[name] = job


instance_id, seconds = self.get_instance_elapsed(log_entries)
if not instance_id:
seconds = (log_entries[-1].timestamp - log_entries[0].timestamp).seconds

workers.append(self.Worker(worker_id, instance_id, seconds, len(worker_jobs)))

self.jobs = jobs.values() self.jobs = jobs.values()
self.instances = instances self.workers = workers


def fmt_table(rows, title=[], groupby=None): def fmt_table(rows, title=[], groupby=None):
col_widths = [] col_widths = []
Expand Down

0 comments on commit ba952a4

Please sign in to comment.