Skip to content

Commit

Permalink
Initialize the Sentry SDK within an import executor job to not block …
Browse files Browse the repository at this point in the history
…event loop (home-assistant#118830)
  • Loading branch information
jpbede authored Jun 4, 2024
1 parent c8e7298 commit c83aba0
Showing 1 changed file with 28 additions and 18 deletions.
46 changes: 28 additions & 18 deletions homeassistant/components/sentry/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
from homeassistant.helpers.event import async_call_later
from homeassistant.helpers.system_info import async_get_system_info
from homeassistant.loader import Integration, async_get_custom_components
from homeassistant.setup import SetupPhases, async_pause_setup

from .const import (
CONF_DSN,
Expand All @@ -41,7 +42,6 @@

CONFIG_SCHEMA = cv.removed(DOMAIN, raise_if_present=False)


LOGGER_INFO_REGEX = re.compile(r"^(\w+)\.?(\w+)?\.?(\w+)?\.?(\w+)?(?:\..*)?$")


Expand Down Expand Up @@ -81,23 +81,33 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
),
}

sentry_sdk.init(
dsn=entry.data[CONF_DSN],
environment=entry.options.get(CONF_ENVIRONMENT),
integrations=[sentry_logging, AioHttpIntegration(), SqlalchemyIntegration()],
release=current_version,
before_send=lambda event, hint: process_before_send(
hass,
entry.options,
channel,
huuid,
system_info,
custom_components,
event,
hint,
),
**tracing,
)
with async_pause_setup(hass, SetupPhases.WAIT_IMPORT_PACKAGES):
# sentry_sdk.init imports modules based on the selected integrations
def _init_sdk():
"""Initialize the Sentry SDK."""
sentry_sdk.init(
dsn=entry.data[CONF_DSN],
environment=entry.options.get(CONF_ENVIRONMENT),
integrations=[
sentry_logging,
AioHttpIntegration(),
SqlalchemyIntegration(),
],
release=current_version,
before_send=lambda event, hint: process_before_send(
hass,
entry.options,
channel,
huuid,
system_info,
custom_components,
event,
hint,
),
**tracing,
)

await hass.async_add_import_executor_job(_init_sdk)

async def update_system_info(now):
nonlocal system_info
Expand Down

0 comments on commit c83aba0

Please sign in to comment.