mirror of
https://github.com/datahub-project/datahub.git
synced 2025-09-27 01:55:17 +00:00
feat(ingest): add global sentry/telemetry properties (#14062)
This commit is contained in:
parent
f4ee5652a5
commit
64505681a0
@ -104,7 +104,7 @@ SENTRY_DSN: Optional[str] = os.environ.get("SENTRY_DSN", None)
|
|||||||
SENTRY_ENVIRONMENT: str = os.environ.get("SENTRY_ENVIRONMENT", "dev")
|
SENTRY_ENVIRONMENT: str = os.environ.get("SENTRY_ENVIRONMENT", "dev")
|
||||||
|
|
||||||
|
|
||||||
def _default_telemetry_properties() -> Dict[str, Any]:
|
def _default_global_properties() -> Dict[str, Any]:
|
||||||
return {
|
return {
|
||||||
"datahub_version": nice_version_name(),
|
"datahub_version": nice_version_name(),
|
||||||
"python_version": platform.python_version(),
|
"python_version": platform.python_version(),
|
||||||
@ -122,6 +122,7 @@ class Telemetry:
|
|||||||
context_properties: Dict[str, Any] = {}
|
context_properties: Dict[str, Any] = {}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self.global_properties = _default_global_properties()
|
||||||
self.context_properties = {}
|
self.context_properties = {}
|
||||||
|
|
||||||
if SENTRY_DSN:
|
if SENTRY_DSN:
|
||||||
@ -247,6 +248,10 @@ class Telemetry:
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def add_global_property(self, key: str, value: Any) -> None:
|
||||||
|
self.global_properties[key] = value
|
||||||
|
self._update_sentry_properties()
|
||||||
|
|
||||||
def set_context(
|
def set_context(
|
||||||
self,
|
self,
|
||||||
server: Optional["DataHubGraph"] = None,
|
server: Optional["DataHubGraph"] = None,
|
||||||
@ -257,16 +262,17 @@ class Telemetry:
|
|||||||
**(properties or {}),
|
**(properties or {}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self._update_sentry_properties()
|
||||||
|
|
||||||
|
def _update_sentry_properties(self) -> None:
|
||||||
|
properties = {
|
||||||
|
**self.global_properties,
|
||||||
|
**self.context_properties,
|
||||||
|
}
|
||||||
if self.sentry_enabled:
|
if self.sentry_enabled:
|
||||||
from sentry_sdk import set_tag
|
import sentry_sdk
|
||||||
|
|
||||||
properties = {
|
sentry_sdk.set_tags(properties)
|
||||||
**_default_telemetry_properties(),
|
|
||||||
**self.context_properties,
|
|
||||||
}
|
|
||||||
|
|
||||||
for key in properties:
|
|
||||||
set_tag(key, properties[key])
|
|
||||||
|
|
||||||
def init_capture_exception(self) -> None:
|
def init_capture_exception(self) -> None:
|
||||||
if self.sentry_enabled:
|
if self.sentry_enabled:
|
||||||
@ -300,7 +306,7 @@ class Telemetry:
|
|||||||
try:
|
try:
|
||||||
self.mp.people_set(
|
self.mp.people_set(
|
||||||
self.client_id,
|
self.client_id,
|
||||||
_default_telemetry_properties(),
|
self.global_properties,
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.debug(f"Error initializing telemetry: {e}")
|
logger.debug(f"Error initializing telemetry: {e}")
|
||||||
@ -334,7 +340,7 @@ class Telemetry:
|
|||||||
logger.debug(f"Sending telemetry for {event_name}")
|
logger.debug(f"Sending telemetry for {event_name}")
|
||||||
|
|
||||||
properties = {
|
properties = {
|
||||||
**_default_telemetry_properties(),
|
**self.global_properties,
|
||||||
**self.context_properties,
|
**self.context_properties,
|
||||||
**properties,
|
**properties,
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user