cmdline option for setting too long operation failures

This commit is contained in:
Sandy Walsh 2013-04-09 08:56:53 -03:00
parent 3f39e4e031
commit d599f0b747

View File

@ -14,7 +14,7 @@ from stacktach import models
def make_report(yesterday=None, start_hour=0, hours=24, percentile=97,
store=False, region=None):
store=False, region=None, too_long=1800):
if not yesterday:
yesterday = datetime.datetime.utcnow().date() - \
datetime.timedelta(days=1)
@ -27,6 +27,7 @@ def make_report(yesterday=None, start_hour=0, hours=24, percentile=97,
dend = dt.dt_to_decimal(rend)
codes = {}
too_long_col = '> %d' % (too_long / 60)
cells = []
regions = []
@ -113,8 +114,8 @@ def make_report(yesterday=None, start_hour=0, hours=24, percentile=97,
end = raw.when
diff = end - start
if diff > 3600 and failure_type == None:
failure_type = '> 60'
if diff > too_long and failure_type == None:
failure_type = too_long_col
key = (operation, image)
@ -148,7 +149,7 @@ def make_report(yesterday=None, start_hour=0, hours=24, percentile=97,
'cells': cells}
report.append(details)
failure_types = ["4xx", "5xx", "> 60", "state"]
failure_types = ["4xx", "5xx", too_long_col, "state"]
cols = ["Operation", "Image", "Min", "Max", "Med", "%d%%" % percentile,
"Requests"]
for failure_type in failure_types:
@ -249,6 +250,9 @@ if __name__ == '__main__':
parser.add_argument('--percentile',
help='Percentile for timings. Default: 97', default=97,
type=int)
parser.add_argument('--too_long',
help='Seconds for an operation to fail. Default: 1800 (30min)', default=1800,
type=int)
parser.add_argument('--store',
help='Store report in database. Default: False',
default=False, action="store_true")
@ -265,6 +269,7 @@ if __name__ == '__main__':
start_hour = args.start_hour
store_report = args.store
region = args.region
too_long = args.too_long
if (not yesterday) and days_back > 0:
yesterday = datetime.datetime.utcnow().date() - \
@ -276,7 +281,8 @@ if __name__ == '__main__':
start_hour = yesterday.hour
start, end, raw_report = make_report(yesterday, start_hour, hours,
percentile, store_report, region)
percentile, store_report, region,
too_long)
details = raw_report[0]
pct = details['pct']
@ -289,7 +295,7 @@ if __name__ == '__main__':
'created': dt.dt_to_decimal(datetime.datetime.utcnow()),
'period_start': start,
'period_end': end,
'version': 3,
'version': 4,
'name': 'summary for region: %s' % region_name}
report = models.JsonReport(**values)
report.save()