diff --git a/sysom_server/sysom_diagnosis/service_scripts/schedmoni_post b/sysom_server/sysom_diagnosis/service_scripts/schedmoni_post index 136c7ec251c7cebd50ae33d493d1678ad261171b..280278f7b6dd8f84b227b8efe7b6256075071d01 100755 --- a/sysom_server/sysom_diagnosis/service_scripts/schedmoni_post +++ b/sysom_server/sysom_diagnosis/service_scripts/schedmoni_post @@ -20,17 +20,54 @@ def extract_params(): res = tmp.read() return res, task_id +def parse_summary(result): + jitsum = result["jitterEventSummary"] + sumdatas = jitsum["data"] + i = 1 + status = "normal" + _reasons = ["delay in runqueue(may be too may task?)", "Notice: cpu takes too many time in kernel", "Notice: irq disabled too long in kernel"] + reason = "N/A" + for data in sumdatas: + if data["value"] != "normal": + if status == "normal": + status = data["value"] + elif data["value"] == "emergency": + if status == "warning": + status = "error" + tmp = str(i)+". "+_reasons[i-1] + if reason == "N/A": + reason = tmp + else: + reason = reason + tmp + i = i + 1 + #print(status) + #print(reason) + sum_res = {} + summary = {} + summary["status"] = status + summary["cause"] = reason + if reason != "N/A": + summary["suggestion"] = "详情请检查/var/log/sysak/schedmoni/schedmoni.json" + else: + summary["suggestion"] = "N/A" + sum_res["summary"] = summary + #print(sum_res) + return sum_res if __name__ == "__main__": str1, _ = extract_params() str2 = str1.replace('\n', "") str3 = str2.replace('\t', "") data3 = json.loads(str3) + results = {} + summary = parse_summary(data3["datasources"]) + results["summary"] = summary["summary"] + results["datasources"] = data3["datasources"] postprocess_result = { "code": 0, "err_msg": "", "result": {} } - postprocess_result["result"] = data3["datasources"] + postprocess_result["result"] = results data = json.dumps(postprocess_result, indent=4, ensure_ascii=False) print(data)