import sentry_sdk
import os
from mindsdb.utilities import log
logger = log.getLogger(__name__)
SENTRY_IO_DSN = os.environ.get("SENTRY_IO_DSN", "")
SENTRY_IO_ENVIRONMENT = os.environ.get("SENTRY_IO_ENVIRONMENT", "local").lower()
SENTRY_IO_RELEASE = os.environ.get("SENTRY_IO_RELEASE", "local").lower()
SENTRY_IO_TRACE_SAMPLE_RATE = float(os.environ.get("SENTRY_IO_TRACE_SAMPLE_RATE", "1.0"))
SENTRY_IO_PROFILING_SAMPLE_RATE = float(os.environ.get("SENTRY_IO_PROFILING_SAMPLE_RATE", "1.0"))
SENTRY_IO_DISABLED = True if (os.environ.get("SENTRY_IO_DISABLED", "false").lower() == "true" or SENTRY_IO_ENVIRONMENT == "local") else False
SENTRY_IO_FORCE_RUN = True if os.environ.get("SENTRY_IO_FORCE_RUN", "false").lower() == "true" else False
if SENTRY_IO_DSN and (not SENTRY_IO_DISABLED or SENTRY_IO_FORCE_RUN):
logger.info("Sentry.io enabled")
logger.info(f"SENTRY_IO_DSN: {SENTRY_IO_DSN}")
logger.info(f"SENTRY_IO_ENVIRONMENT: {SENTRY_IO_ENVIRONMENT}")
logger.info(f"SENTRY_IO_RELEASE: {SENTRY_IO_RELEASE}")
logger.info(f"SENTRY_IO_TRACE_SAMPLE_RATE: {SENTRY_IO_TRACE_SAMPLE_RATE * 100}%")
logger.info(f"SENTRY_IO_PROFILING_SAMPLE_RATE: {SENTRY_IO_PROFILING_SAMPLE_RATE * 100}%")
sentry_sdk.init(
dsn=SENTRY_IO_DSN,
traces_sample_rate=SENTRY_IO_TRACE_SAMPLE_RATE,
profiles_sample_rate=SENTRY_IO_PROFILING_SAMPLE_RATE,
environment=SENTRY_IO_ENVIRONMENT,
release=SENTRY_IO_RELEASE,
)