diff --git a/createKeyRequestReport.py b/createKeyRequestReport.py index 1c722ac..e68c35f 100644 --- a/createKeyRequestReport.py +++ b/createKeyRequestReport.py @@ -12,7 +12,8 @@ import dynatraceAPI # import types from KRParser import krparser #from key_request_parser import krparser - +import time +#from datetime import datetime warnings.filterwarnings("ignore") @@ -48,16 +49,17 @@ def write_to_excel(ignored, noData1M, noData1W, all_TP_slos): all_TP_slos.to_excel(writer, sheet_name='TP_') - writer.save() + writer._save() writer.close() def getStats(krs): - + ts = time.time() + epoch = datetime.datetime.now().timestamp() tmpIgnoredList=[] for kr in [a for a in krs if len(a.keyRequests) == 0]: - tmpIgnoredList.append([kr.metadata["sloName"], kr.metadata["sloId"], kr.metadata["env"],"","","","",kr.metadata["filter"], kr.metadata["metricExpression"]]) + tmpIgnoredList.append([kr.metadata["sloName"], kr.metadata["sloId"], kr.metadata["env"],"","","","","",kr.metadata["filter"], kr.metadata["metricExpression"], "", epoch]) @@ -65,24 +67,28 @@ def getStats(krs): for kr in [s for s in krs if s.hasNoData("1M")==True]: for k in kr.getKeyRequestByHasData("1M"): noData1M.append([kr.metadata["sloName"], kr.metadata["sloId"], kr.metadata["env"], k["displayName"], k["entityId"],k["services"][0]["displayName"] if len(k["services"]) > 0 else "", - [x for x in k["services"][0]["tags"] if x['key']=="compass-id"][0]["value"] if len(k["services"]) > 0 and len(k["services"][0]["tags"]) > 0 and len([x for x in k["services"][0]["tags"] if x['key']=="compass-id"]) > 0 else "", + [x for x in k["services"][0]["tags"] if x['key']=="compass-id"][0]["value"] if len(k["services"]) > 0 and len(k["services"][0]["tags"]) > 0 and len([x for x in k["services"][0]["tags"] if x['key']=="compass-id"]) > 0 else "", + k["_mInSloDef"], kr.metadata["filter"], - kr.metadata["metricExpression"]]) + kr.metadata["metricExpression"], + kr.matchedGroups._list[0]['pattern'], epoch]) noData1W=[] for kr in [s for s in krs if s.hasNoData("1W")==True]: for k in kr.getKeyRequestByHasData("1W"): noData1W.append([kr.metadata["sloName"], kr.metadata["sloId"], kr.metadata["env"], k["displayName"], k["entityId"], k["services"][0]["displayName"] if len(k["services"]) > 0 else "", [x for x in k["services"][0]["tags"] if x['key']=="compass-id"][0]["value"] if len(k["services"]) > 0 and len(k["services"][0]["tags"]) > 0 and len([x for x in k["services"][0]["tags"] if x['key']=="compass-id"]) > 0 else "", + k["_mInSloDef"], kr.metadata["filter"], - kr.metadata["metricExpression"]]) + kr.metadata["metricExpression"], + kr.matchedGroups._list[0]['pattern'], epoch]) # noData1W=[] # for kr in [s for s in krs if s.hasNoData1WKeyRequests()==True]: # for k in kr.getNoData1WKeyRequests(): # noData1W.append([kr.metadata["sloName"], kr.metadata["env"], k["displayName"], k["entityId"], kr.metadata["filter"], kr.metadata["metricExpression"]]) - columns =['slo', 'sloID', 'env', 'displayName','entityId','service','compass-id','filter', 'metricExpression'] + columns =['slo', 'sloID', 'env', 'displayName','entityId','service','compass-id','InSloDef','filter', 'metricExpression','pattern', 'timestamp'] ignored=pd.DataFrame(tmpIgnoredList, columns=columns) noData_1M=pd.DataFrame(noData1M, columns = columns) noData_1W=pd.DataFrame(noData1W, columns = columns) @@ -94,9 +100,10 @@ def getStats(krs): k["count"]["1W"], k["count"]["1M"], k["services"][0]["displayName"] if len(k["services"]) > 0 else "", [x for x in k["services"][0]["tags"] if x['key']=="compass-id"][0]["value"] if len(k["services"]) > 0 and len(k["services"][0]["tags"]) > 0 and len([x for x in k["services"][0]["tags"] if x['key']=="compass-id"]) > 0 else "", - kr.metadata["filter"], kr.metadata["metricExpression"]]) + k["_mInSloDef"], + kr.metadata["filter"], kr.metadata["metricExpression"], kr.matchedGroups._list[0]['pattern'], epoch]) - columns_ext =['slo', 'sloID', 'env', 'displayName','entityId','Count_1W', 'Count_1M','service','compass-id','filter', 'metricExpression'] + columns_ext =['slo', 'sloID', 'env', 'displayName','entityId','Count_1W', 'Count_1M','service','compass-id','InSloDef', 'filter', 'metricExpression', 'pattern', 'timestamp'] all_TP_slos=pd.DataFrame(allTPSlos, columns = columns_ext) return ignored, noData_1M, noData_1W, all_TP_slos