feat(ingest): add global sentry/telemetry properties (#14062)

This commit is contained in:
Harshal Sheth 2025-07-14 08:47:48 -07:00 committed by GitHub
parent f4ee5652a5
commit 64505681a0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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,
} }