From 29cf8cef8f9fdde9e5be11962c369d1f91ace61a Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 20 Dec 2024 10:16:45 +0530 Subject: [PATCH 1/2] feat: log peak memory usage for Prepared reports --- .../core/doctype/prepared_report/prepared_report.json | 10 +++++++++- frappe/core/doctype/prepared_report/prepared_report.py | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/frappe/core/doctype/prepared_report/prepared_report.json b/frappe/core/doctype/prepared_report/prepared_report.json index 172f6ab8a6f2..bdf663fa0784 100644 --- a/frappe/core/doctype/prepared_report/prepared_report.json +++ b/frappe/core/doctype/prepared_report/prepared_report.json @@ -13,6 +13,7 @@ "column_break_4", "queued_at", "report_end_time", + "peak_memory_usage", "section_break_7", "error_message", "filters_sb", @@ -101,11 +102,18 @@ "is_virtual": 1, "label": "Queued At", "read_only": 1 + }, + { + "fieldname": "peak_memory_usage", + "fieldtype": "Int", + "label": "Peak Memory Usage", + "print_hide": 1, + "read_only": 1 } ], "in_create": 1, "links": [], - "modified": "2024-03-23 16:03:34.835357", + "modified": "2024-12-20 10:18:19.174608", "modified_by": "Administrator", "module": "Core", "name": "Prepared Report", diff --git a/frappe/core/doctype/prepared_report/prepared_report.py b/frappe/core/doctype/prepared_report/prepared_report.py index 292520233caa..2dce4633601c 100644 --- a/frappe/core/doctype/prepared_report/prepared_report.py +++ b/frappe/core/doctype/prepared_report/prepared_report.py @@ -2,6 +2,7 @@ # License: MIT. See LICENSE import gzip import json +import resource from contextlib import suppress from typing import Any @@ -33,6 +34,7 @@ class PreparedReport(Document): error_message: DF.Text | None filters: DF.SmallText | None job_id: DF.Data | None + peak_memory_usage: DF.Int queued_at: DF.Datetime | None queued_by: DF.Data | None report_end_time: DF.Datetime | None @@ -119,6 +121,7 @@ def generate_report(prepared_report): _save_error(instance, error=frappe.get_traceback(with_context=True)) instance.report_end_time = frappe.utils.now() + instance.peak_memory_usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss instance.save(ignore_permissions=True) frappe.publish_realtime( From 63a6c8c90369288f32614a338b52b820bee68162 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 20 Dec 2024 11:35:41 +0530 Subject: [PATCH 2/2] refactor: log in monitor as well --- frappe/core/doctype/prepared_report/prepared_report.py | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/core/doctype/prepared_report/prepared_report.py b/frappe/core/doctype/prepared_report/prepared_report.py index 2dce4633601c..3e51bc24521b 100644 --- a/frappe/core/doctype/prepared_report/prepared_report.py +++ b/frappe/core/doctype/prepared_report/prepared_report.py @@ -122,6 +122,7 @@ def generate_report(prepared_report): instance.report_end_time = frappe.utils.now() instance.peak_memory_usage = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss + add_data_to_monitor(peak_memory_usage=instance.peak_memory_usage) instance.save(ignore_permissions=True) frappe.publish_realtime(