"""Synthetic request-count arithmetic; no production monitoring measurements.""" import csv import json from fractions import Fraction from pathlib import Path ROOT=Path(__file__).parent allowed=Fraction(1,1000) rows=[{'interval':f'I{i+1}','minutes':5,'eligible':n,'bad':b} for i,(n,b) in enumerate([(10000,10),(10000,10),(10,1),(10,1)])] def ratio(data): n=sum(r['eligible'] for r in data) return Fraction(sum(r['bad'] for r in data),n) if n else None weighted=ratio(rows) mean=sum(Fraction(r['bad'],r['eligible']) for r in rows)/len(rows) sensitivity=[] for n in (1000,10000,100000): varied=[dict(eligible=n,bad=n//1000),dict(eligible=n,bad=n//1000),dict(eligible=10,bad=1),dict(eligible=10,bad=1)] sensitivity.append(dict(busy_requests_per_interval=n,eligible=sum(r['eligible'] for r in varied),bad=sum(r['bad'] for r in varied),weighted_burn=float(ratio(varied)/allowed),mean_interval_burn=50.5)) assert sum(r['eligible'] for r in rows)==20020 assert sum(r['bad'] for r in rows)==22 assert mean/allowed==Fraction(101,2) assert weighted/allowed==Fraction(1100,1001) assert ratio([dict(eligible=0,bad=0)]) is None result=dict(origin='synthetic assigned counts; calculated, not measured',slo_percent=99.9,allowed_bad_fraction=float(allowed),eligible=20020,bad=22,weighted_error_percent=float(weighted*100),weighted_burn=float(weighted/allowed),mean_interval_error_percent=float(mean*100),mean_interval_burn=float(mean/allowed),zero_request_result=None,sensitivity=sensitivity) (ROOT/'results.json').write_text(json.dumps(result,indent=2)+'\n') for name,data in [('requests.csv',rows),('sensitivity.csv',sensitivity)]: with (ROOT/name).open('w',newline='') as f:w=csv.DictWriter(f,fieldnames=data[0].keys());w.writeheader();w.writerows(data) print(json.dumps(result,indent=2))