From b485c148f51c723b73125d93924d82b8f450e81f Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Tue, 19 Feb 2013 07:43:04 -0600 Subject: [PATCH 1/3] local date changes --- stacktach/views.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/stacktach/views.py b/stacktach/views.py index d770645..08f6d6d 100644 --- a/stacktach/views.py +++ b/stacktach/views.py @@ -321,17 +321,25 @@ def aggregate_usage(raw): def str_time_to_unix(when): - try: - when = datetime.datetime.strptime(when, "%Y-%m-%d %H:%M:%S") - except ValueError: + if 'T' in when: + try: + # Old way of doing it + when = datetime.datetime.strptime(when, "%Y-%m-%dT%H:%M:%S.%f") + except ValueError: + try: + # Old way of doing it, no millis + when = datetime.datetime.strptime(when, "%Y-%m-%dT%H:%M:%S") + except Exception, e: + print "BAD DATE: ", e + else: try: when = datetime.datetime.strptime(when, "%Y-%m-%d %H:%M:%S.%f") except ValueError: try: - # Old way of doing it - when = datetime.datetime.strptime(when, "%Y-%m-%dT%H:%M:%S.%f") + when = datetime.datetime.strptime(when, "%Y-%m-%d %H:%M:%S") except Exception, e: print "BAD DATE: ", e + return dt.dt_to_decimal(when) From 1ac5678d156b1d2939cd41cd9cd4b4dd4cd92faf Mon Sep 17 00:00:00 2001 From: root Date: Tue, 19 Feb 2013 10:30:50 -0600 Subject: [PATCH 2/3] local changes --- reports/pretty.py | 2 +- stacktach/stacky_server.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reports/pretty.py b/reports/pretty.py index e08c6c0..29990e1 100644 --- a/reports/pretty.py +++ b/reports/pretty.py @@ -197,7 +197,7 @@ if __name__ == '__main__': if store_report: values = {'json': json.dumps(raw_report), - 'created': float(dt.dt_to_decimal(datetime.datetime.utcnow())), + 'created': dt.dt_to_decimal(datetime.datetime.utcnow()), 'period_start': start, 'period_end': end, 'version': 1, diff --git a/stacktach/stacky_server.py b/stacktach/stacky_server.py index 6f47e0f..5543aa3 100644 --- a/stacktach/stacky_server.py +++ b/stacktach/stacky_server.py @@ -383,8 +383,8 @@ def do_jsonreports(request): now = datetime.datetime.utcnow() yesterday = dt.dt_to_decimal(yesterday) now = dt.dt_to_decimal(now) - _from = float(request.GET.get('created_from', yesterday)) - _to = float(request.GET.get('created_to', now)) + _from = request.GET.get('created_from', yesterday) + _to = request.GET.get('created_to', now) reports = models.JsonReport.objects.filter(created__gte=_from, created__lte=_to) results = [] From 6eb284c7e7936d24fbabbd7e58f178c630f901d0 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 25 Feb 2013 16:39:32 +0000 Subject: [PATCH 3/3] Include transitions to error state --- reports/pretty.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/reports/pretty.py b/reports/pretty.py index 73060f8..0857f2a 100644 --- a/reports/pretty.py +++ b/reports/pretty.py @@ -81,10 +81,18 @@ def make_report(yesterday=None, start_hour=0, hours=24, percentile=90, for raw in raws: if not start: start = raw.when + if 'error' in raw.routing_key: err = raw failure_type = 'http' + if raw.old_state != 'error' and raw.state == 'error': + failure_type = 'state' + + if raw.old_state == 'error' and \ + (not raw.state in ['deleted', 'error']): + failure_type = None + for cmd in cmds: if cmd in raw.event: operation = cmd @@ -140,7 +148,7 @@ def make_report(yesterday=None, start_hour=0, hours=24, percentile=90, 'cells': cells} report.append(details) - failure_types = ["4xx", "5xx", "> 60"] + failure_types = ["4xx", "5xx", "> 60", "state"] cols = ["Operation", "Image", "Min*", "Max*", "Avg*", "Requests"] for failure_type in failure_types: