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")
def _default_telemetry_properties() -> Dict[str, Any]:
def _default_global_properties() -> Dict[str, Any]:
return {
"datahub_version": nice_version_name(),
"python_version": platform.python_version(),
@ -122,6 +122,7 @@ class Telemetry:
context_properties: Dict[str, Any] = {}
def __init__(self):
self.global_properties = _default_global_properties()
self.context_properties = {}
if SENTRY_DSN:
@ -247,6 +248,10 @@ class Telemetry:
return False
def add_global_property(self, key: str, value: Any) -> None:
self.global_properties[key] = value
self._update_sentry_properties()
def set_context(
self,
server: Optional["DataHubGraph"] = None,
@ -257,16 +262,17 @@ class Telemetry:
**(properties or {}),
}
self._update_sentry_properties()
def _update_sentry_properties(self) -> None:
properties = {
**self.global_properties,
**self.context_properties,
}
if self.sentry_enabled:
from sentry_sdk import set_tag
import sentry_sdk
properties = {
**_default_telemetry_properties(),
**self.context_properties,
}
for key in properties:
set_tag(key, properties[key])
sentry_sdk.set_tags(properties)
def init_capture_exception(self) -> None:
if self.sentry_enabled:
@ -300,7 +306,7 @@ class Telemetry:
try:
self.mp.people_set(
self.client_id,
_default_telemetry_properties(),
self.global_properties,
)
except Exception as e:
logger.debug(f"Error initializing telemetry: {e}")
@ -334,7 +340,7 @@ class Telemetry:
logger.debug(f"Sending telemetry for {event_name}")
properties = {
**_default_telemetry_properties(),
**self.global_properties,
**self.context_properties,
**properties,
}