feat: capture custom values in frappe monitor
lets monitor add extra info for: - Save/Submit by doctype - Report generation time by standard report name
This commit is contained in:
parent
002b27dbdd
commit
967cc26fab
5 changed files with 21 additions and 0 deletions
1
.github/helper/db/mariadb.json
vendored
1
.github/helper/db/mariadb.json
vendored
|
|
@ -13,5 +13,6 @@
|
|||
"root_login": "root",
|
||||
"root_password": "travis",
|
||||
"host_name": "http://test_site:8000",
|
||||
"monitor": 1,
|
||||
"server_script_enabled": true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import frappe
|
|||
from frappe.desk.form.load import get_attachments
|
||||
from frappe.desk.query_report import generate_report_result
|
||||
from frappe.model.document import Document
|
||||
from frappe.monitor import add_data_to_monitor
|
||||
from frappe.utils import gzip_compress, gzip_decompress
|
||||
from frappe.utils.background_jobs import enqueue
|
||||
|
||||
|
|
@ -25,6 +26,8 @@ def run_background(prepared_report):
|
|||
instance = frappe.get_doc("Prepared Report", prepared_report)
|
||||
report = frappe.get_doc("Report", instance.ref_report_doctype)
|
||||
|
||||
add_data_to_monitor(report=instance.ref_report_doctype)
|
||||
|
||||
try:
|
||||
report.custom_columns = []
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import json
|
|||
|
||||
import frappe
|
||||
from frappe.desk.form.load import run_onload
|
||||
from frappe.monitor import add_data_to_monitor
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
|
|
@ -25,6 +26,8 @@ def savedocs(doc, action):
|
|||
run_onload(doc)
|
||||
send_updated_docs(doc)
|
||||
|
||||
add_data_to_monitor(doctype=doc.doctype, action=action)
|
||||
|
||||
frappe.msgprint(frappe._("Saved"), indicator="green", alert=True)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ from frappe import _
|
|||
from frappe.core.utils import ljust_list
|
||||
from frappe.model.utils import render_include
|
||||
from frappe.modules import get_module_path, scrub
|
||||
from frappe.monitor import add_data_to_monitor
|
||||
from frappe.permissions import get_role_permissions
|
||||
from frappe.translate import send_translations
|
||||
from frappe.utils import (
|
||||
|
|
@ -254,6 +255,8 @@ def run(
|
|||
|
||||
result["add_total_row"] = report.add_total_row and not result.get("skip_total_row", False)
|
||||
|
||||
add_data_to_monitor(report=report)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,13 @@ def stop(response=None):
|
|||
frappe.local.monitor.dump(response)
|
||||
|
||||
|
||||
def add_data_to_monitor(**kwargs) -> None:
|
||||
"""Add additional custom key-value pairs along with monitor log.
|
||||
Note: Key-value pairs should be simple JSON exportable types."""
|
||||
if hasattr(frappe.local, "monitor"):
|
||||
frappe.local.monitor.add_custom_data(**kwargs)
|
||||
|
||||
|
||||
def log_file():
|
||||
return os.path.join(frappe.utils.get_bench_path(), "logs", "monitor.json.log")
|
||||
|
||||
|
|
@ -71,6 +78,10 @@ class Monitor:
|
|||
waitdiff = self.data.timestamp - job.enqueued_at
|
||||
self.data.job.wait = int(waitdiff.total_seconds() * 1000000)
|
||||
|
||||
def add_custom_data(self, **kwargs):
|
||||
if self.data:
|
||||
self.data.update(kwargs)
|
||||
|
||||
def dump(self, response=None):
|
||||
try:
|
||||
timediff = datetime.utcnow() - self.data.timestamp
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue