<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def send_alert_to_configured_integration(integration_alert):
 """Send IntegrationAlert to configured integration."""

    try:
        alert = integration_alert.alert
        configured_integration = integration_alert.configured_integration
        integration = configured_integration.integration
        integration_actions_instance = configured_integration.integration.module

        alert_fields = dict()
        if integration.required_fields:
            if not all([hasattr(alert, _) for _ in integration.required_fields]):
                logger.debug("Alert does not have all required_fields (%s) for integration %s, skipping",
                             integration.required_fields,
                             integration.name)
                return

        exclude_fields = ["alert_type", "service_type"]
        alert_fields = {}
        for field in alert.__slots__:
            if hasattr(alert, field) and field not in exclude_fields:
                alert_fields[field] = getattr(alert, field)

        logger.debug("Sending alert %s to %s", alert_fields, integration.name)
        output_data, output_file_content = integration_actions_instance.send_event(alert_fields)

        if integration.polling_enabled:
            integration_alert.status = IntegrationAlertStatuses.POLLING.name
            polling_integration_alerts.append(integration_alert)
        else:
            integration_alert.status = IntegrationAlertStatuses.DONE.name

        integration_alert.send_time = get_current_datetime_utc()
        integration_alert.output_data = json.dumps(output_data)
        # TODO: do something with successfully handled alerts? They are all written to debug log file

    except exceptions.IntegrationMissingRequiredFieldError as exc:
        logger.exception("Send response formatting for integration alert %s failed. Missing required fields",
                         integration_alert,
                         exc.message)

        integration_alert.status = IntegrationAlertStatuses.ERROR_MISSING_SEND_FIELDS.name

    except exceptions.IntegrationOutputFormatError:
        logger.exception("Send response formatting for integration alert %s failed", integration_alert)

        integration_alert.status = IntegrationAlertStatuses.ERROR_SENDING_FORMATTING.name

    except exceptions.IntegrationSendEventError as exc:
        integration_send_retries = integration_alert.retries if integration_alert.retries <= MAX_SEND_RETRIES \
            else MAX_SEND_RETRIES  # making sure we do not exceed celery max retries
        send_retries_left = integration_send_retries - 1
        integration_alert.retries = send_retries_left

        logger.error("Sending integration alert %s failed. Message: %s. Retries left: %s",
                     integration_alert,
                     exc.message,
                     send_retries_left)

        if send_retries_left == 0:
            integration_alert.status = IntegrationAlertStatuses.ERROR_SENDING.name

        if send_retries_left > 0:
            sleep(SEND_ALERT_DATA_INTERVAL)
            send_alert_to_configured_integration(integration_alert)