Skip to content
14 changes: 0 additions & 14 deletions backend/deepchecks_monitoring/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,20 +203,6 @@ def auto_removal(task): # pylint: disable=unused-argument
if settings.is_cloud:
app.include_router(ee.api.v1.cloud_router, dependencies=[Depends(LicenseCheckDependency())])

# Configure telemetry
if settings.sentry_dsn:
import sentry_sdk

sentry_sdk.init(
dsn=settings.sentry_dsn,
traces_sampler=ee.utils.sentry.traces_sampler,
environment=settings.sentry_env,
before_send_transaction=ee.utils.sentry.sentry_send_hook
)
# Ignoring this logger since it can spam sentry with errors
sentry_sdk.integrations.logging.ignore_logger("aiokafka.cluster")
ee.utils.telemetry.collect_telemetry(DataIngestionBackend)

if settings.debug_mode:
app.add_middleware(ee.middlewares.ProfilingMiddleware)

Expand Down
28 changes: 1 addition & 27 deletions backend/deepchecks_monitoring/bgtasks/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ def is_serialization_error(error: DBAPIError):
)


class BaseSchedulerSettings(config.DatabaseSettings):
class SchedulerSettings(config.DatabaseSettings):
"""Scheduler settings."""

scheduler_sleep_seconds: int = 30
Expand All @@ -393,39 +393,13 @@ class BaseSchedulerSettings(config.DatabaseSettings):
scheduler_logfile_backup_count: int = 3


try:
from deepchecks_monitoring import ee # pylint: disable=import-outside-toplevel

with_ee = True

class SchedulerSettings(BaseSchedulerSettings, ee.config.TelemetrySettings):
"""Set of worker settings."""
pass
except ImportError:
with_ee = False

class SchedulerSettings(BaseSchedulerSettings):
"""Set of worker settings."""
pass


def execute_alerts_scheduler(scheduler_implementation: t.Type[AlertsScheduler]):
"""Execute alrets scheduler."""

async def main():
settings = SchedulerSettings() # type: ignore
service_name = 'alerts-scheduler'

if with_ee:
if settings.sentry_dsn:
import sentry_sdk # pylint: disable=import-outside-toplevel
sentry_sdk.init(
dsn=settings.sentry_dsn,
traces_sample_rate=0.6,
environment=settings.sentry_env
)
ee.utils.telemetry.collect_telemetry(scheduler_implementation)

logger = configure_logger(
name=service_name,
log_level=settings.scheduler_loglevel,
Expand Down
22 changes: 1 addition & 21 deletions backend/deepchecks_monitoring/bgtasks/tasks_queuer.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ async def move_tasks_to_queue(self, session) -> int:
return 0


class BaseWorkerSettings(DatabaseSettings, RedisSettings):
class WorkerSettings(DatabaseSettings, RedisSettings):
"""Worker settings."""

logfile: t.Optional[str] = None
Expand All @@ -152,16 +152,6 @@ class Config:
env_file_encoding = 'utf-8'


if with_ee:
class WorkerSettings(BaseWorkerSettings, ee.config.TelemetrySettings):
"""Set of worker settings."""
pass
else:
class WorkerSettings(BaseWorkerSettings):
"""Set of worker settings."""
pass


async def init_async_redis(redis_uri):
"""Initialize redis connection."""
try:
Expand Down Expand Up @@ -190,16 +180,6 @@ async def main():
# the telemetry collection. Adding here this import to fix this
from deepchecks_monitoring.bgtasks import tasks_queuer # pylint: disable=import-outside-toplevel

if with_ee:
if settings.sentry_dsn:
import sentry_sdk # pylint: disable=import-outside-toplevel
sentry_sdk.init(
dsn=settings.sentry_dsn,
traces_sample_rate=0.1,
environment=settings.sentry_env,
)
ee.utils.telemetry.collect_telemetry(tasks_queuer.TasksQueuer)

workers = [
# ModelVersionTopicDeletionWorker,
ModelVersionCacheInvalidation,
Expand Down
12 changes: 0 additions & 12 deletions backend/deepchecks_monitoring/bgtasks/tasks_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,18 +189,6 @@ async def main():
# the telemetry collection. Adding here this import to fix this
from deepchecks_monitoring.bgtasks import tasks_runner # pylint: disable=import-outside-toplevel

if with_ee and settings.sentry_dsn:
import sentry_sdk # pylint: disable=import-outside-toplevel

sentry_sdk.init(
dsn=settings.sentry_dsn,
traces_sample_rate=0.1,
environment=settings.sentry_env
)
ee.utils.telemetry.collect_telemetry(tasks_runner.TaskRunner)
# Ignoring this logger since it can spam sentry with errors
sentry_sdk.integrations.logging.ignore_logger('aiokafka.cluster')

async with ResourcesProvider(settings) as rp:
async_redis = await init_async_redis(rp.redis_settings.redis_uri)

Expand Down
12 changes: 1 addition & 11 deletions backend/deepchecks_monitoring/ee/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,13 @@

__all__ = [
'Settings',
'TelemetrySettings',
'SlackSettings'
]


PROJECT_DIR = pathlib.Path(__file__).parent.parent.absolute()


class TelemetrySettings(BaseDeepchecksSettings):
"""Telemetry settings."""

instrument_telemetry: bool = False
sentry_dsn: t.Optional[str] = None
sentry_env: str = 'dev'


class SlackSettings(BaseDeepchecksSettings):
"""Settings for Slack."""

Expand All @@ -52,8 +43,7 @@ def validate_scopes(cls, value: str): # pylint: disable=no-self-argument

class Settings(
OpenSourceSettings,
SlackSettings,
TelemetrySettings,
SlackSettings
):
"""Settings for the deepchecks_monitoring package."""

Expand Down
39 changes: 1 addition & 38 deletions backend/deepchecks_monitoring/ee/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from ldclient.config import Config as LDConfig

from deepchecks_monitoring.ee import utils
from deepchecks_monitoring.ee.config import Settings, SlackSettings, TelemetrySettings
from deepchecks_monitoring.ee.config import Settings, SlackSettings
from deepchecks_monitoring.ee.features_control_cloud import CloudFeaturesControl
from deepchecks_monitoring.ee.features_control_on_prem import OnPremFeaturesControl
from deepchecks_monitoring.ee.notifications import AlertNotificator as EEAlertNotificator
Expand All @@ -42,18 +42,6 @@ class ResourcesProvider(OpenSourceResourcesProvider):
def __init__(self, settings: Settings):
super().__init__(settings)
self._lauchdarkly_client = None
self._is_telemetry_initialized = False

@property
def telemetry_settings(self) -> TelemetrySettings:
"""Get the telemetry settings."""
if not isinstance(self._settings, TelemetrySettings):
raise AssertionError(
"Provided settings instance type is not a subclass of "
"the 'TelemetrySettings', you need to provide instance "
"of 'TelemetrySettings' to the 'ResourcesProvider' constructor"
)
return self._settings

@property
def slack_settings(self) -> SlackSettings:
Expand Down Expand Up @@ -110,35 +98,10 @@ def parallel_check_executors_pool(self) -> "ActorPool | None":
if parallel_check_executor_flag:
return super().parallel_check_executors_pool

def initialize_telemetry_collectors(
self,
*targets,
traces_sample_rate: float = 0.6,
):
"""Initialize telemetry."""
settings = self.telemetry_settings

if settings.sentry_dsn and not self._is_telemetry_initialized:
import sentry_sdk # pylint: disable=import-outside-toplevel

sentry_sdk.init(
dsn=settings.sentry_dsn,
traces_sample_rate=traces_sample_rate,
environment=settings.sentry_env,
before_send_transaction=utils.sentry.sentry_send_hook
)

self._is_telemetry_initialized = True

if self._is_telemetry_initialized:
for it in targets:
utils.telemetry.collect_telemetry(it)

def get_client_configuration(self) -> dict:
if self.settings.is_cloud:
settings = cast(Settings, self.settings)
return {
"sentryDsn": settings.sentry_dsn,
"lauchdarklySdkKey": settings.lauchdarkly_sdk_key,
"environment": settings.enviroment,
"mixpanel_id": settings.mixpanel_id,
Expand Down
3 changes: 0 additions & 3 deletions backend/deepchecks_monitoring/ee/utils/__init__.py

This file was deleted.

28 changes: 0 additions & 28 deletions backend/deepchecks_monitoring/ee/utils/sentry.py

This file was deleted.

Loading