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