| 123456789101112131415161718192021222324252627282930313233343536373839 | import openaiimport sentry_sdkfrom langfuse import parse_errorfrom sentry_sdk.integrations.celery import CeleryIntegrationfrom sentry_sdk.integrations.flask import FlaskIntegrationfrom werkzeug.exceptions import HTTPExceptionfrom configs import dify_configfrom core.model_runtime.errors.invoke import InvokeRateLimitErrordef before_send(event, hint):    if "exc_info" in hint:        exc_type, exc_value, tb = hint["exc_info"]        if parse_error.defaultErrorResponse in str(exc_value):            return None    return eventdef init_app(app):    if dify_config.SENTRY_DSN:        sentry_sdk.init(            dsn=dify_config.SENTRY_DSN,            integrations=[FlaskIntegration(), CeleryIntegration()],            ignore_errors=[                HTTPException,                ValueError,                openai.APIStatusError,                InvokeRateLimitError,                parse_error.defaultErrorResponse,            ],            traces_sample_rate=dify_config.SENTRY_TRACES_SAMPLE_RATE,            profiles_sample_rate=dify_config.SENTRY_PROFILES_SAMPLE_RATE,            environment=dify_config.DEPLOY_ENV,            release=f"dify-{dify_config.CURRENT_VERSION}-{dify_config.COMMIT_SHA}",            before_send=before_send,        )
 |