refactor: code cleanup

- better boot config name
- send sentry after - because frappe namespce doesn't exist if it starts
  first
- remove import in app.py because __init__ is always imported so no
  need.
- leave telemetry JS always present, this is used even when telemetry is
  not enabled.
This commit is contained in:
Ankush Menat 2023-11-30 17:06:09 +05:30
parent 4cc1392697
commit 52686f79cb
6 changed files with 11 additions and 32 deletions

View file

@ -22,7 +22,7 @@ import frappe.rate_limiter
import frappe.recorder
import frappe.utils.response
from frappe import _
from frappe.auth import UNSAFE_HTTP_METHODS, HTTPRequest, validate_auth
from frappe.auth import SAFE_HTTP_METHODS, UNSAFE_HTTP_METHODS, HTTPRequest, validate_auth # noqa
from frappe.middlewares import StaticDataMiddleware
from frappe.utils import CallbackManager, cint, get_site_name
from frappe.utils.data import escape_html
@ -60,10 +60,6 @@ if frappe._tune_gc:
import frappe.website.router # Website router
import frappe.website.website_generator # web page doctypes
# Import sentry only if DSN is set
if os.getenv("FRAPPE_SENTRY_DSN"):
import frappe.utils.sentry
# end: module pre-loading

View file

@ -29,6 +29,7 @@ app_include_js = [
"form.bundle.js",
"controls.bundle.js",
"report.bundle.js",
"telemetry.bundle.js",
]
app_include_css = [

View file

@ -1,6 +1,6 @@
import * as Sentry from "@sentry/browser";
Sentry.init({
dsn: frappe.boot.sentry,
dsn: frappe.boot.sentry_dsn,
release: frappe?.boot?.versions?.frappe,
});

View file

@ -38,7 +38,7 @@ def log_error(
):
"""Log error to Error Log"""
from frappe.monitor import get_trace_id
from frappe.utils.telemetry import capture
from frappe.utils.sentry import capture_exception
# Parameter ALERT:
# the title and message may be swapped
@ -68,13 +68,9 @@ def log_error(
reference_name=reference_name,
trace_id=trace_id,
)
capture("error_logged", "frappe", properties={"title": title, "trace_id": trace_id})
if frappe.get_system_settings("enable_telemetry"):
from frappe.app import capture_exception
# Capture exception data if telemetry is enabled
capture_exception(message=f"{title}\n{traceback}")
# Capture exception data if telemetry is enabled
capture_exception(message=f"{title}\n{traceback}")
if frappe.flags.read_only or defer_insert:
error_log.deferred_insert()

View file

@ -65,19 +65,9 @@ def capture_exception(
def add_bootinfo(bootinfo):
"""Called from hook, sends DSN so client side can setup error monitoring.
Config needs to be present in site_config in following format:
"error_reporting": {
"sentry": {
"dsn": "...",
...
}
}
"""
"""Called from hook, sends DSN so client side can setup error monitoring."""
if not frappe.get_system_settings("enable_telemetry"):
return
if sentry_info := os.getenv("FRAPPE_SENTRY_DSN"):
bootinfo.sentry = sentry_info
if sentry_dsn := os.getenv("FRAPPE_SENTRY_DSN"):
bootinfo.sentry_dsn = sentry_dsn

View file

@ -49,12 +49,8 @@ def get_context(context):
include_icons = hooks.get("app_include_icons", [])
frappe.local.preload_assets["icons"].extend(include_icons)
if frappe.get_system_settings("enable_telemetry"):
if os.getenv("FRAPPE_SENTRY_DSN"):
include_js = ["sentry.bundle.js"] + include_js
if hasattr(frappe.local, "posthog"):
include_js = ["telemetry.bundle.js"] + include_js
if frappe.get_system_settings("enable_telemetry") and os.getenv("FRAPPE_SENTRY_DSN"):
include_js.append("sentry.bundle.js")
context.update(
{